IO流——流的概述和分类

这篇具有很好参考价值的文章主要介绍了IO流——流的概述和分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.IO流的分类
  • 流的不同:输入流、输出流。
  • 处理单位的不同:字节流、字符流。
  • 流的角色不同:节点流、处理流。
2.基础IO流的框架
抽象基类 4个节点流(也称为文件流)
InputStream FileInputStream
OutputStream FileOutputStream
Reader FileReader
Writer FileWriter
3.FileReader \ FileWriter的使用
3.1执行步骤:
  1. 创建读取或写出的File类的对象。
  2. 创建输入流或输出流。
  3. 具体的读入或写出的过程。
    • 读入:read(char[] cbuffer)
    • 写出:write(String str)/ write(char[] cbuffer,0,len)
  4. 关闭流资源,避免内存泄漏.
3.2注意点:
  1. 因为涉及到流资源的关闭操作,所以出现异常的话,需要使用try-catch-finally的方式来处理异常。

  2. 对于输入流来讲,要求file类的对象对应的物理磁盘上的文件必须存在。否则,会报FileNotFoundException错误。

  3. 对于输出流来讲,file类的对象对应的物理磁盘的文件可以不存在。

    • 如果不存在,输出过程会自动创建该文件并写出数据到此文件中。

    • 如果存在,通过FileWriter构造器来选择覆盖还是追加。文章来源地址https://www.toymoban.com/news/detail-824712.html

      //append是true为追加,反之覆盖
      public FileWriter(File file, boolean append) throws IOException
      
4.FileInputStream \ FileOutputStream的使用
4.1执行步骤:
  1. 创建读取或写出的File类的对象。
  2. 创建输入流或输出流。
  3. 具体的读入或写出的过程。
    • 读入:read(byte[] buffer)
    • 写出: write(byte[] buffer,0,len)
  4. 关闭流资源,避免内存泄漏.
4.2注意点:
  • 在3.2注意点的基础上,看其他的注意点。
  • 对于字符流,只能用来操作文本文件,不能用来处理非文本文件。
  • 对于字节流,通常是用来处理非文本文件的,但是如果涉及到文本文件的复制操作,也可以用字节流。
  • 说明:
    • 文本文件:.txt、.java、.c、.cpp、.py等。
    • 非文本文件:.doc、.xls、.jpg、.pdf、.mp3、.mp4、.avi等。

到了这里,关于IO流——流的概述和分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java高级语法】(九)IO流:肝了三天三夜,我打赌没有比我这边更细的探索Java I\O流的文章了~

    在Java中,IO(输入输出)操作是进行数据交互的重要方式之一。本文将详细介绍Java中的IO流的各个方面,包括输入流和输出流、字节流和字符流、文件读写、缓冲、序列化以及常见的IO异常处理等知识点。 图1 IO流体系结构 按照数据流向,Java中的IO流可分为两种类型:输入流

    2024年02月11日
    浏览(34)
  • 【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~

    掌握 java.io包中类的继承关系 ; 掌握 File类的使用,并且可以通过File类进行文件的创建、删除以及文件夹的列表等操作; 掌握字节流或字符流操作文件内容,字节流与字符流的区别; 在 java.io 包中,如果要进行文件自身的操作 (例如:创建、删除等), 只能依靠 java.io.File 类完

    2024年02月15日
    浏览(33)
  • IO流的讲解(4)

    目录 转换流 基本介绍 应用案例1 应用案例2 打印流 演示PrintStream (字节打印流/输出流) 演示 PrintWriter 使用方式 Properties类 Properties基本介绍 应用案例 本章习题 第一题 第二题 第三题 基本介绍 Java中的转换流是用来处理字符和字节之间转换的流。转换流在字节输入流和字节

    2024年02月06日
    浏览(34)
  • 【C++】文件IO流及stringstream流的使用

    我们在OJ的时候经常会用到while(cin str),这里的流提取实际上是个阻塞操作,只要缓冲区还有数据就继续读,默认以空格或者换行结束,有空格说明是把两段字符串尾插到str。 那么它是怎么结束呢? 答案是输入 [Ctrl]-c 或者 [Ctrl]-z + 换行 。 [Ctrl]-c 是发送信号结束进程。 [Ctrl

    2023年04月27日
    浏览(39)
  • io.netty学习(三)Channel 概述

    目录 前言 正文 Channel概述 Channel 特点 Channel 接口方法 ChannelOutboundInvoker AttributeMap 总结 前两篇文章我们已经对 Netty 进行了简单的了解和架构设计原理的剖析。 本篇文章我们就来开始对 Netty 源码的分析,首先我们来讲解 Netty 中 Channel 相关的功能和接口。 io.netty学习使用汇总

    2024年02月09日
    浏览(40)
  • Redis_概述_特性_IO模型

    掌握NoSql数据库的概念和与sql数据库的区别 初步了解Redis内存数据库 了解Redis内存数据库的优点及其原因 掌握Redis的多线程IO模型 学习Redis的安装和配置 Redis 全称 Remote Dictionary Server 远程字典服务! 使用C语言编写,支持网络,可基于内存也可以持久化的日志型,NoSQL开源内存数据库

    2024年02月09日
    浏览(40)
  • Java——Stream流的学习

    在开发过程中,经常或忽略流的使用,导致用的不熟练,于是抽时间系统的学习下stream的使用,找了哔哩哔哩的教程跟着看看练练。 创建Book、Aurhor实体类,初始化数据 filter 对流中的操作进行过滤,符合条件的返回 使用的函数式接口是:Predicate,参数是一个实体,拥有抽象

    2024年02月20日
    浏览(50)
  • Java——Stream流的peek方法

    Java Stream中的peek()方法也是用于查看每个元素,但不改变流的操作的方法。它接收一个Consumer类型的参数,该参数用于针对每个元素执行副作用操作。该方法返回一个与原始流相同的新流,因此可以进行链式操作。 使用peek()方法可以方便地在流处理过程中调试或记录某些数据

    2024年01月20日
    浏览(47)
  • Java以流的形式返回前端

    前言:为了实现像ChatGPT一样的效果:文字进行逐个显示,后端返回的时候需要以流的形式 。 目录 一、字符串流 二、文件流 一、字符串流   二、文件流

    2024年02月11日
    浏览(62)
  • Java8 Stream流的合并

    最近的需求里有这样一个场景,要校验一个集合中每个对象的多个Id的有效性。比如一个Customer对象,有3个Id: id1 , id2 , id3 ,要把这些Id全部取出来,然后去数据库里查询它们是否存在。 通常情况下,我们都是从集合中取出对象的某一个字段,像这样: 现在要取3个字段,

    2024年02月02日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包