通过实现 java.io.Serializable 接口以启用类中对象的序列化功能。
public interface Serializable {
}
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。Serializable是一个接口,凡是一个接口中没有任何定义,就被称为标记接口,像这种接口java中有很多,标记接口就是用来做标记的。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
序列化过程:
ObjectOutputStream oos=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("E:\\person.object")));//要把对象序列化(持久性存储)到硬盘的指定位置
Person P=new Person("小王",20);//被序列化的对象
oos.writeObject(P);//把此对象序列化
oos.close();
反序列化过程:
ObjectInputStream ois=new ObjectInputStream(new BufferedInputStream(new FileInputStream("E:\\person.object")));//从硬盘的指定位置读取存储对象的文件
Person p=(Person)ois.readObject();//调用readObject进行反列化
System.out.println(p);
ois.close();