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;
这几节笔记都是在看传智的刘意老师的视频总结的,都是一些基础知识,有什么问题欢迎交流~