Java基础知识强化之IO流笔记61:输入流 和 输出流 使用总结

时间:2023-02-24 21:38:13

1. 结构:

字节流:InputStream,OutputStream

字符流:Reader,Writer

 

2. 字符流 和 字节流:

(1)Reader:读取字符流的抽象类

 BufferedReader:将字符存入缓冲区,再读取

  LineNumberReader:带行号的字符缓冲输入流

InputStreamReader:转换流,字节流和字符流的桥梁,多在编码的地方使用

  FileReader:读取字符文件的便捷类。

 

(2)Writer:写入字符流的抽象类

BufferedWriter:将字符存入缓冲区,再写入

OutputStreamWriter:转换流,字节流和字符流的桥梁,多在编码的地方使用

  FileWriter:写入字符文件的便捷类。

 

(3)InputStream:字节输入流的所有类的超类

ByteArrayInputStream:含缓冲数组,读取内存中字节数组的数据,未涉及流

FileInputStream:从文件中获取输入字节。媒体文件

  BufferedInputStream:带有缓冲区的字节输入流

  DataInputStream:数据输入流,读取基本数据类型的数据

ObjectInputStream:用于读取对象的输入流

PipedInputStream:管道流,线程间通信,与PipedOutputStream配合使用

SequenceInputStream:合并流,将多个输入流逻辑串联。

 

(4)OutputStream:此抽象类是表示输出字节流的所有类的超类

ByteArrayOutputStream:含缓冲数组,将数据写入内存中的字节数组,未涉及流

FileOutStream:文件输出流,将数据写入文件 

  BufferedOutputStream:带有缓冲区的字节输出流

  PrintStream:打印流,作为输出打印

  DataOutputStream:数据输出流,写入基本数据类型的数据

ObjectOutputStream:用于写入对象的输出流

PipedOutputStream:管道流,线程间通信,与PipedInputStream配合使用

 

 

3. 流操作规律: 

(1)明确数据源和目的:

  数据源:读取,InputStreamReader

  目的:写入,OutStreamWriter

 

(2)数据是否是纯文本:

  :字符流,ReaderWriter

  :字节流,InputStreamOutStream

 

(3)明确数据设备:

  源设备:内存、硬盘、键盘

  目的设备:内存、硬盘、控制台

 

(4)是否提高效率:用BufferedXXX