您的位置:首页 > 其它

IO流-序列化流

2016-06-09 16:17 183 查看
ObjectOutputStream 对象操作(字节)流:

        将java对象写入OutputSream,使用ObjectInputStream可以读取(重构)对象,
通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。。

1.序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输。对象 -- 流数据(ObjectOutputStream)

2.反序列化流:把文本文件中的对象数据或者网络中的流对象数据还原称对象。流数据 -- 对象(ObjectInputStream)

public final void writeObject(Object obj) throws IOException;

        将指定的对象写入ObjectOutputStream。

对象类通过实现java.io.Serializable接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化.  

         class Person implements Serializable();

         该接口没有任何方法 被称为标记接口。

Object 接受对象可以接受任意类型

Tips:

            不要随意改变对象类中的值,修改后它们的id值会发生改变,当读取文件时会和id值进行匹配,所有会出现问题。不过可以提供一个默认的id值

在Eclipse中修改值会出现黄色警告线,可以加上比如:

        private static final long serialVersionUID = 123;

        //提供一个默认的ID,不再改变

如何让对象类的成员变量不被序列化?

        使用transient关键字声明不需要序列化的成员变量

        private transient int age;

这几节笔记都是在看传智的刘意老师的视频总结的,都是一些基础知识,有什么问题欢迎交流~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: