使用ObjectOutputStream实现对象的序列化
注意事项:
- 序列化类必须实现Serializable接口
- 序列化类中对象属性要求实现Serializable接口
- 序列化版本号ID serialVersionUID,保证序列化的类和反序列化的类是同一个类
- 使用transient 修饰属性,这个属性不能被序列化
- 静态属性不能被序列化
- 序列化多个对象,可以借助集合实现
使用ObjectInputStream实现对象的反序列化
注意事项:
- 在反序列化对象时出现 java.io.EOFException(当输入过程中意外到达文件或流的末尾时,抛出异常。此异常主要被数据输入流用来表明到达流的末尾。注意,其他许多输入操作返回一个特殊值表示到达流的末尾,而不是抛出异常)
- java.io.InvalidClassException: com.iostream.Person; local class incompatible: stream classdesc serialVersionUID = 100, local class serialVersionUID = 200 serialVersionUID 两个UID不一致。