字符流、缓冲流、对象流
字符流
- 字符流: 只能操作与纯文本的数据
- 字符输入流 : Reader 用于读取字符流的抽象类
- public class FileReader extends InputStreamReader用来读取字符文件的便捷类。
- read()…+close();
- 字符输出流 : Writer
- FileWriter 写出到文件的字符输出流
- write()…+flush()+close()
- 注意:字符编码格式要求统一
缓冲流
- 缓冲流: 提高性能
- 用法: 缓冲流(节点流)
- 字节缓冲流
- BufferedInputStream
- BufferedOutputStream
- 没有新增方法,可以多态调用
字符缓冲流
- 字符缓冲流
- BufferedReader
- BufferedWriter
- 新增方法:
- readLine() newLine()
- 不能多态使用
基本数据类型流
- 基本数据类型流: 基本数据类型+字符串类型的数据
- 是字节流的一个功能流
- DataInputStream:
- DataOutputStream:
- 新增方法 readXxx() WriteXxx()
- 先写出–>再读入 (读入源文件才有效)
- EOFException:文件有,但是内容读取不到
对象流
- 对象流: 功能流(节点流) : 节本数据类型+字符串+对象类型
- 序列化:把对象类型数据的状态转为可以存储或者传输的过程
- 序列化输出流 ObjectOutputStream
- 反序列化输入流 ObjectInputStream
- 新增方法: writeObject() readObject()
- 先序列化后反序列化 实现空接口 java.io.Serializable
- 不是所有类都能序列化
- 不是所有的属性都需要序列化 transient
- 静态的内容不能被序列化
- 如果父类实现了序列化,子类对象的所有内容都可以被序列化
- 如果子类实现序列化,父类没有实现,子类对象只能序列化子类中的内容