序列化
1 序列化概述
Java中提供了一种序列化操作的方式,用一个字节序列化来表示一个对象,该字节序列化中保存了【对象的属性】,【对象的类型】和【对象的数据】。把字节序列化保存到文件中,就可以做到持久化保存数据内容。
从文件中读取字节序列化数据,可以直接得到对应的对象。
2 ObjectOutputStream类
将对象数据序列化,保存到文件中
构造方法 Constructor
ObjectOutputStream(OutputStream out);
输出字节流对象作为当前方法的参数
3 ObjectInputStream类
从文件中读取被序列化之后的字节数据,提供反序列化操作,得到一个对象。
构造方法 Constructor
ObjectInputStream(InputStream in);
需要提供一个字节输入流对象来进行操作
【序列化注意事项】
1. 如果一个类需要进行序列化操作,必须遵从。java.io.Serializable。不遵从无法进行序列化操作
2. 序列化之后从文件中读取序列化内容,转换成对应的对象,
ClassNotFoundException 对应类没有找到。
对应的类型没有导包,不存在...
InvalidClassException 类型不一样
序列化之后的每一个类都会有一个serialVersionUID,该编号在使用过程中,序列化
和反序列化必须一致
3. transient 修饰的成员变量不能被序列化