IO流
概述
流是有起点和终点的有序字节序列
目录
- IO流
- File类
- FileInputStream/FileOutputStream
- FileReader/FileWriter
- InputStreamReader/OutputStreamWrite
- BufferedReader/BufferedWriter
- ObjectInputStream/ObjectOutputStream
- PrintStream/PrintWriter
IO体系分类
IO字符流体系结构
IO字节流体系结构
读写文件
输入输出
File类
读取文件内容使用IO流, 操作文件/文件夹使用File类, 如创建/遍历/删除文件夹, 查看文件的相关属性等操作
FileInputStream/FileOutputStream
以字节为单位读写文件内容
FileReader/FileWriter
以字符为单位读写文件内容
只能读写文本文件, 并且要求文本文件的编码格式与当前环境编码格式兼容
InputStreamReader/OutputStreamWrite
当文本文件编码与当前环境编码不兼容时, 使用这个转换流
InputStreamReader把字节流以指定的编码转换为字符流
OutputStreamWriter可以把字符转换为指定格式的字节流
BufferedReader/BufferedWriter
缓冲区工作
ObjectInputStream/ObjectOutputStream
对象序列化:
把对象转换为01二进制序列就是对象序列化
对象反序列化
把一组01二进制序列转换为对象
注意:
对象序列化/反序列化前提是对象的类要实现Serializable接口,该接口是一个标志性接口,没有任何方法
ObjectOutputStream类 可以把对象序列化,把序列化后二进制保存到文件中
ObjectInputStream类可以从文件读取01序列,把 这组01序列转换为对象(反序列化)
一般情况下, 类实现了Serializable接口后, 手动的添加一个序列化版本号字段:
private static final long serialversionUID = 2332956456465L;
PrintStream/PrintWriter
打印字节流/打印字符流