一、流的分类
java.io 包中定义了多个流类型(类或抽象类)来实现输入/输出 功能;可以从不同的角度对其进行分类
- 按数据流的方向不同可以分为输入流和输出流
- 按处理数据单位不同可以分为字节流(0101010)和字符流(字符是两个字节)
- 按照功能不同可以分为节点流和处理流
JDK所提供的所有流位于包java.io 内部,分别继承以下四种抽象流类型:
- 节点流可以从一个特定的数据源(节点)读取数据(如:文件、内存)
- 数据流是连接在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更强大的读写功能
二、节点流类型
三、处理流类型
Object流:
- transient 关键字(透明的)修饰类的成员变量,则往内存中写的时候不予考虑
- serializable 接口(序列化):序列化后才能往内存中写入,不需要实现任何方法,因为serializable 接口本身没有方法
- externalizable 接口:serializable接口的子接口,自己控制自己的序列化过程,有两个方法:readExternal(ObjectInput in) writeExternal(ObjectOutput out)