IO流-序列化流

来源:互联网 发布:java 读取压缩包文件 编辑:程序博客网 时间:2024/05/19 17:50
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;

这几节笔记都是在看传智的刘意老师的视频总结的,都是一些基础知识,有什么问题欢迎交流~
1 0
原创粉丝点击