序列化是一种用来处理对象流的机制,就是将对象的内容进行流化,可以对流化后的对象进行读写操作,也可以将流化后的对象传输于网络之间。反序列化是将流再转换为对象的过程。序列化和反序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现,需要序列化的类实现Serializable接口,该接口没有需要实现的方法,只是为了标注该对象是可被序列化的。使用一个输出流,如FileOutputStream来构造一个ObjectOutputStream(对象流)对象,接着使用ObjectOutputStream对象的writeObject(Object obj)方法可将参数为obj的对象写出。
例:
public class Person implements Serializable{}
//序列化(写)
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(new Person());
oos.close();
//反序列化(读)
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
Object obj = ois.readObject();
obj.close();