Java - IO流 - 关系整理 (简洁)

IO流的分类

  • 按数据流的方向分为输入流输出流

输入、输出是相对于我们写的代码程序而言

  • 输入流:从别的地方(本地文件,网络上的资源等)获取资源
  • 输出流:从我们的程序中输出到别的地方
  • 处理数据单位不同分为字节流字符流

字节流:每次读取(写出)一个字节 1Byte 、处理非字符文件 =》 音频,视频。。。

字符流:每次读取(写出)两个字节 1Word=2Byte。 处理字符文件 =》 文本

  • 功能不同分为节点流处理流

节点流:从或向一个特定的地方(节点)读写数据。 如FileInputStream 
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装.

Note:

  • 单单“输入/输出流”无法实例化,必须通过“字节/字符流”作为连接(形成处理流),有需要的话再在外面嵌套“处理流”
  • 看下面的图片就能看懂了!

IO流的判别

判别流程

  1. 输入流 or 输出流
  2. 字节流 or 字符流
  3. 节点流 or 处理流

IO流整理

1. 输入字节流

  • InputStream(输入流字节) =》 FileInputStream(输入字节节点流) =》 BufferedInputStream(输入字节处理流 -> 处理=缓冲)
InputStream in = System.in;  //输入流、字节流、节点流
new BufferedInputStream(System.in); //输入流、字节流、处理流

在这里插入图片描述


2. 输出字节流

  • OutputStream(输出流字节流) =》 FileOutputStream(输出字节节点流) =》 B u f f e r e d O u t p u t S t r e a m {\color{#ff0011}{BufferedOutputStream}} 输出字节处理流 -> 处理=缓冲)
  • OutputStream(输出流字节流) =》 FileOutputStream(输出字节节点流) =》 P r i n t S t r e a m {\color{#ff0011}{PrintStream}} 输出字节处理流 -> 处理=打印)
OutputStream out = System.out; //输出流、字节流、节点流  (方便看,这里向上转型,原来是PrintStream)
new BufferedOutputStream(System.out); //输出流、字节流、处理流(缓冲)
new PrintStream(System.out); //输出流、字节流、处理流(换行)

在这里插入图片描述


3. 输入字符流

  • Reader(输入字符流) =》 InputStreamReader (输入字符节点流) =》 BufferedReader(输入节点处理流
//创建字符流实例,需要传入字节流实例
new InputStreamReader(System.in,"UTF-8"); //输入流、字符流、节点流 => 字符流有处理字符的功能
new BufferedReader(new InputStreamReader(System.in,"UTF-8")); //输入流、字符流、处理流(缓冲)

new Scanner(System.in)

只有BufferedReader 可以读行 readLine()

在这里插入图片描述


输出字符流

  • Writer(输出字符流) =》 OutputStreamWriter(输出字节节点流) =》 BufferedWriter (输出节点处理流
  • OutputStreamWriter(输出字节节点流) =》 BufferedWriter (输出节点处理流
//创建字符流实例,需要传入字节流实例
new OutputStreamWriter(System.out,"UTF-8"); //输出流、字符流、节点流 =》 字符流有处理字符的功能
new BufferedWriter(new OutputStreamWriter(System.out,"UTF-8")); //输出流、字符流、处理流(缓冲)
new PrintWriter(System.out);// 输出流、字符流、处理流(换行)

在这里插入图片描述


总结

《Java-IO流》https://blog.csdn.net/sinat_37064286/article/details/86537354#1%E3%80%81%E6%B5%81%E7%9A%84%E6%A6%82%E5%BF%B5%E5%92%8C%E4%BD%9C%E7%94%A8

在这里插入图片描述

发布了296 篇原创文章 · 获赞 61 · 访问量 7073

猜你喜欢

转载自blog.csdn.net/LawssssCat/article/details/103188942