1、使用序列化流将对象写到文件时,需要让JavaBean类实现Serializable接口。否则会出现 NotSerializableException
异常,表示这个类对象不可被序列化。
2、序列化流写到文件中的数据是不能修改的,一旦修改就无法再次读回来了。
3、序列化对象后,修改了JavaBean类,再次反序列化,会不会有问题?
会出现问题,会抛出 InvalidClassException异常
解决方案:手动给JavaBean类添加 serialVersionUID
,这个变量你可以把它理解成序列化、版本号。
在添加的时候不建议字节写,也不建议抄别人的,建议在IDEA中设置一下,以后自动生成就行了。
4、如果一个对象中的某个成员变量的值不想被序列化,又如何实现呢?
解决方案:给该成员变量加 transient
关键字修饰,也叫做 瞬态关键字
,它的作用是:该关键字标记的成员变量不参与序列化的过程。
也就是说这个变量所记录的值不会保存到本地文件中,下次使用 反序列化流
读取出来的时候,这个变量为默认初始化值。