对象流
对象序列化 (Serialization)
ObjectOutputStream ->序列化->写对象,将对象以“二进
制/字节”的形式写到(文件)
ObjectInputStream ->反序列化 ->读对象
将 Java 对象转换成字节序列(IO 字节流)
对象反序列化 (DeSerialization)
从字节序列中恢复 Java 对象
为什么序列化
序列化以后的对象可以保存到磁盘上,也可以在网络上传输,
使得不同的计算机可以共享对象.(序列化的字节序列是平
台无关的)
对象序列化的条件
只有实现了 Serializable 接口的类的对象才可以被序列化。
Serializable 接口中没有任何的方法,实现该接口的类不需要
实现额外的方法。
如果对象的属性是对象,属性对应类也必须实现 Serializable
接口
如何实现序列化
创建 ObjectOutputStream 对象
调用 writeObject()输出对象
如何实现反序列化
创建 ObjectInputStream 对象
调用 readObject()读取对象
写个小例子说明一下
因为是对象流,肯定要用到对象,先写创建个Person类,包含姓名,年龄属性,实现get() set() toString() 有参和无参构造方法,最重要的是Person类要实现Serializable接口
1 importjava.io.Serializable;2
3 public class Person implements Serializable {//具备一个能力,可序列化与反序列化的能力
4 privateString name;5 private intage;6 publicPerson() {7 super();8 }9 public Person(String name, intage) {10 super();11 this.name =name;12 this.age =age;13 }14 @Override15 publicString toString() {16 return "Person [name=" + name + ", age=" + age + "]";17 }18 publicString getName() {19 returnname;20 }21 public voidsetName(String name) {22 this.name =name;23 }24 public