2.主要涉及的类
ObjectOutputStream类扩展DataOutput接口。writeObject()方法是最重要的方法,用于对象序列化。如果对象包含其 他对象的引用,则writeObject()方法递归序列化这些对象。每个ObjectOutputStream维护序列化的对象引用表,防止发送同一对 象的多个拷贝。由于writeObject()可以序列化整组交叉引用的对象,因此同一ObjectOutputStream实例可能不小心被请求序列化 同一对象。
这时,进行反引用序列化,而不是再次写入对象字节流。例如:
ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("Login.out"));
o.writeObject(new Date());
o.close();
ObjectInputStream类扩展DataInput接口。ObjectInputStream中的方法镜像DataInputStream中读 取Java基本数据类型的公开方法。readObject()方法从字节流中反序列化对象。每次调用readObject()方法都返回流中下一个 Object。对象字节流并不传输类的字节码,而是包括类名及其签名。readObject()收到对象时,JVM装入头中指定的类。如果找不到这个类, 则readObject()抛出ClassNotFoundException。
ObjectInputStream in = new ObjectInputStream(new FileInputStream("Login.out"));
Date d = (Date) in.readObject();