本文主要是介绍day24 java IO流 对象流 序列化与反序列化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对象流:ObjectInputStream 和 ObjectOutputStream 可以把内存中的数据(基本数据类型数据,对象的处理流)持久化起来。需要的时候可以还原成内存层面的数据。序列化:用ObjectOutputStream类保存基本类型数据或对象的机制,将内存中的对象写到磁盘中 反序列化:用ObjectInputStream类读取基本类型数据或对象的机制,将磁盘中对象恢复到内存中ObjectInputStream 反序列化时的错误:stream classdesc serialVersionUID = -1159203326177187056,local class serialVersionUID = 4819562835854727119 发生错误的原因 :将对象序列化后存储的SUID值和反序列化后类中的SUID的值不匹配。 如何解决此问题:1.SUID是如何变的 如何不让SUID的值发生变化?当自定义的类实现Serializable后会有默认SUID值这个值不会发生改变除非类发生改变。那么我们可以通过显示声明SUID的方式让SUID不变(本质上序列化对象所属性的类 在对象序列化后不要修改)。2.如何在反序列化时保证不失败(不发生上面的错误)?序列化时的SUID和反序列化时的SUID要保持一致
注意:如果对象要序列化那么对象所属性的类及类中的属性都必须实现Serializable接口。基本数据类型除外。
这篇关于day24 java IO流 对象流 序列化与反序列化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!