对象序列化
1、什么是对象序列化?
对象序列化就是把 对象 数据存入到文件中去 内存→磁盘
2、对象序列化用到哪个流
对象字节输出流ObjectOutputStream
public void writeObject(Object obj)
3、序列化对象的实现要求
对象必须实例化接口
public class Student implements Serializable{}
例子
public static void main(String[] args) throws Exception {
// 1、创建学生对象
Student s = new Student("张三","zhangsan","123");
// 2、对象序列化:使用对象字节输出流包装字节输出流管道
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("io-app/src/csb.txt"));
// 3、将对象数据存到指定的文件内
oos.writeObject(s);
oos.close();
对象反序列化
1、什么是对象反序列化
以内存为基准,把存储到磁盘文件中去的对象数据 恢复成内存中的对象 磁盘→内存
2、对象反序列化用到哪个流
对象字节输入流ObjectOutputStream
3、序列化对象的实现要求
对象必须实例化接口
public class Student implements Serializable{}
例子
public static void main(String[] args) throws Exception {
// 创建一个字节输入流连通到内存
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("io-app\\src\\csb.txt"));
// 将 学生对象读出,存到学生对象中 (调用对象字节输入流的反序列化方法)
Student s2 = (Student) ois.readObject();
System.out.println(s2);
}
如果不想序列出密码,则在private 后面 透明化此属性
private transient String password;
序列化要申明序列化的版本号码
序列化与反序列化的版本号必须一致才不会出错
private static final long serialVersionUID = 1;