前言
IO流用于操作文件、网络数据、标准输入设备
体系
字节流:inputStream、outputStream
inpustream:字节输入流的所有类的超类
bytearrayinputstream: 数组缓冲流 读取内存中字节数组的数据
fileinputstream: 文件输入流
bufferedinputstream:带有缓冲区的字节输入流
datainputstream: 数据输入流 可以读取基本数据类型
objectinpustream: 对象输入流
pipedinpustream: 管道流 用于线程间通信
sequenceinputStream: 合并流,将多个输入流逻辑串联
outputstream:此抽象类是表示输出字节流的所有类的超类
bytearrayoutputstream: 数组缓冲流 将数据写入内存中的字节数组,未涉及流
FileOutStream:文件输出流,将数据写入文件
BufferedOutputStream:带有缓冲区的字节输出流
PrintStream:打印流,作为输出打印
DataOutputStream:数据输出流,写入基本数据类型的数据
ObjectOutputStream:用于写入对象的输出流
PipedOutputStream:管道流,线程间通信,与PipedInputStream配合使用
字符流:reader,writer
reader:读取字符流的抽象类
bufferedreader:将字符存入缓冲区,再读取
inputStreamReader: 字节流转为字符流型的转换流,多用在编码的地方
FileReader: 读取文件字符流
writer:写入字符流的抽象类
bufferedwriter: 将字符流存入缓存区,再写入
outputstreamwriter:字符流转为字节流的转换流,多用在编码
流操作规律
明确源和目的:
数据源:读取,inputstream和reader
目的: 写入,outstream和writer
数据是否纯文本:
是:字符流 reader writer
否:字节流 inputstrean outputstream
明确数据设备:
源设备: 内存、硬盘、键盘
目的设备:内存、硬盘、控制台
是否提高效率:bufferedxxx
转换流
inputstreamreader: 字节-》字符
outputstreamwriter: 字符-》字节
都涉及到编码