IO流-序列化流

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;

这几节笔记都是在看传智的刘意老师的视频总结的,都是一些基础知识,有什么问题欢迎交流~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值