Java编程的逻辑 (62) - 神奇的序列化
在前面几节,我们在将对象保存到文件时,使用的是DataOutputStream,从文件读入对象时,使用的是DataInputStream, 使用它们,需要逐个处理对象中的每个字段,我们提到,这种方式比较啰嗦,Java中有一种更为简单的机制,那就是序列化。 简单来说,序列化就是将对象转化为字节流,反序列化就是将字节流转化为对象。在Java中,具体如何来使用呢?它是如何实现的?有什么优缺点?本节就来探讨这些问题,我们先从它的基本用法谈起。 基本用法 Serializable 要让一个类支持序列化,只需要让这个类实现接口java.io.Serializable,Serializable没有定义任何方法,只是一个标记接口。比如,对于57节提到的Student类,为支持序列化,可改为: public class Student implements Serializable { String name; int age; double score; public Student(String name, int age, double score) { ... } ... } 声明实现了Serializable接口后,保存/读取Student对象就可以使用另两个流了ObjectOutputStream/ObjectInputStream。 ObjectOutputStream