博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流--序列化流与反序列化流
阅读量:6845 次
发布时间:2019-06-26

本文共 1162 字,大约阅读时间需要 3 分钟。

IO流--序列化流与反序列化流:

   序列化流:把对象当做流一样写入到文本文件中 ObjectOutputSream();

    反序列化流:把文本文件中的流对象还原成对象ObjectInputSream();

 

具体的使用:

 1   创建java对象 实现序列化接口(Serializable):

         

 

序列化代码实现:

 

1    private void writer() throws IOException {2         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("OnlyFileTest\\testObj.txt"));3         Student student = new Student("无极",23);4                  oos.writeObject(student);5                  oos.close();6     }

 

 反序列化代码实现:

 

private void read() throws IOException, ClassNotFoundException {        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("OnlyFileTest\\testObj.txt"));        Object o = ois.readObject();        ois.close();        System.out.println(o);    }

 

 因为类实现了serializable接口(只起对类进行标记的作用!!),底层会生成serialVersionUID;我们每次修改java文件,id会变化,就会导致读写id的值不匹配,就会报错;

解决:让id是一个固定的值即可:

    使用 Idea自动生成serialVersionUID:      

完整操作流程:Setting->Editor->Inspections->Java->Serialization issues->Serializable class without ‘serialVersionUID’(选择勾上)

配置完成后,如果你的Class实现了Serializable接口,那么将光标停留在类名上,然后按Alt+Enter就会提示自动创建serialVersionUID了。

 

 

 2:如果一个类实现Serializable接口后,不想里面的某个成员变量被序列化:可使用 transient   关键字;

 

 

 

转载于:https://www.cnblogs.com/dw3306/p/9459186.html

你可能感兴趣的文章
集合框架_DAY17
查看>>
【ichartjs】用ichartjs替代Excel做直方图
查看>>
unix调试工具:lsof
查看>>
国内各IE内核浏览器所调用的IE版本--转了
查看>>
Vector3.Set的正确使用
查看>>
[CareerCup] 12.6 Test an ATM 测试一个自动取款机
查看>>
完全背包问题
查看>>
Git 经常使用命令合集
查看>>
Eclipse中怎么设置Add cast to Clazz 快捷键
查看>>
SandcastleBuilder-生成帮助文档的时候报错...
查看>>
Android隐藏标题栏和状态栏
查看>>
InfluxDB1.2.4部署(centos6.8)
查看>>
关于协同过滤技术
查看>>
简述 OAuth 2.0 的运作流程
查看>>
OpenJTAG与Jlink/J-link的区别
查看>>
聚焦能力开放 咪咕让中国移动全球合作伙伴大会智趣无限
查看>>
阿里NASA新知 量子通信保障信息更安全
查看>>
阿里推出国内首个锂电池服务器!
查看>>
让父母轻松享受智能生活 天猫精灵新品全测评
查看>>
当时刷大标语的智能养猪现在怎么样了!阿里云ET农业大脑告诉你……
查看>>