ObjectInputStream public class ObjectInputStreamextends InputStreamimplements ObjectInput, ObjectStreamConstants ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的持久性存储。ObjectInputStream 用于恢复那些以前序列化的对象。其他用途包括使用套接字流在主机之间传递对象,或者用于编组和解组远程通信系统中的实参和形参。 ObjectInputStream 确保从流创建的图形中所有对象的类型与 Java 虚拟机中的显示的类相匹配。使用标准机制按需加载类。 只有支持 java.io.Serializable 或 java.io.Externalizable 接口的对象才能从流读取。 readObject 方法用于从流读取对象。应该使用 Java 的安全强制转换来获取所需的类型。在 Java 中,字符串和数组都是对象,所以在序列化期间将其视为对象。读取时,需要将其强制转换为期望的类型。 可以使用 DataInput 上的适当方法从流读取基本数据类型。 默认情况下,对象的反序列化机制会将每个字段的内容还原为写入时它所具有的值和类型。反序列化进程将忽略声明为瞬态或静态的字段。到其他对象的引用使得根据需要从流中读取这些对象。使用引用共享机制能够正确地还原对象的图形。反序列化时始终分配新对象,这样可以避免现有对象被重写。 读取对象类似于运行新对象的构造方法。为对象分配内存并将其初始化为零 (NULL)。为不可序列化类调用无参数构造方法,然后从以最接近 java.lang.object 的可序列化类开始和以对象的最特定类结束的流还原可序列化类的字段。 例如,要按 ObjectOutputStream 中示例的写入从流读取,请执行以下操作: FileInputStream fis = new FileI …