10.19-IO流
流根据功能可以划分为输入流与输出流
输入流:用于读取数据
输出流:用于写出数据
输入输出流的参照对象是基于我们的程序而言的
流的划分
基于处理单位
字节流:以字节为单位读写数据
字符流:以字符为单位读写数据
基于级别
高级流:不能独立的存在,必须基于另外一个流工作
低级流:数据有明确的来源或去向
字节输入输出流的父类
InputStream 字节输入流的父类
OutputStream 字节输出流的父类
FIS/FOS 用于读写文件的流
FileInputStream:文件字节输入流
例子-FileInputStream
FileInputStreamFileOutputStream:文件字节输出流
例子-FileOutputStream
FileOutputStream例子-注意事项
BIS/BOS 高级流
BufferedInputStream : 缓存字节输入流
BufferedOutputSteam :缓存字节输出流
高级流:会带一些额外的功能
例子-BufferedOutputSteam
DIS/DOS 高级流
DataInputStream:可以方便读取基本类型的数据
DataOutputStream:可以方便写出基本类型数据
例子-DataOutputStream
例子-DataInputStream
例子-高级流叠加使用
字符流
Reader:所有字符输入流的父类
Writer:所有字符输出流的父类
字符流的处理单位为字符,一次处理一个字符,字符流的底层本质上还是使用的读写字节
ISR/OSW
例子-字符输出
例子-字符输入
例子-给定字符集输出
例子-给定字符集输入
BR/BW
可以按行读取字符串
BufferedReader 缓存字符输入流
BufferedWriter 缓存字符输出流
例子-缓存字符输出
例子-缓存字符输入
PrintWriter
带自动行刷新的缓存字符输出流
构造器
PrintWriter(File file)
PrintWriter(String fileName)
PrintWriter(OutputStream out)
PrintWriter(Writer out)
例子-普通有参构造器
例子-自动缓存刷新
例子-叠加流
对象的序列化/反序列化流
ObjectInputStream对象的反序列化流ObjectOutputStream对象的序列化流
通常我们序列化对象的目的是用于保存对象和传输对象
例子-序列化与反序列化
首先创建Person类
再创建测试类
测试类2
最后更新于