序列化流ObjectOutputStream 反序列化流ObjectInputStream ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。 如何实现序列化? 类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化,该接口没有任何方法,是一个标机接口。 未实现序列化抛出未序列化异常:NotSerializableException。 序列化数据后,再次修改类文件,读取数据会出问题,如何处理? 使用transient关键字声明不需要序列化的成员变量。
java.io.NotSerializableException 异常名称: 没有序列化异常 产生原因: 在将对象保存到文件系统的时候没有将对象实现序列化接口 解决方法: 针对需要写入到文件系统的对象实现对应的序列化接口
InvalidClassException: 无效类异常 产生原因: 文件中保存的流的序列化id和本地类文件的序列化id不匹配 解决办法: 保证id一致性
transient: 在将成员写入到文件的时候确保数据的安全,在反序列化的时候不能够获取到数据