对象字节输出流可以理解为一个高级的管道 高级的管道 () 要包含一些低级的管道 才能通向文件
对象如果要序列化,必须实现Serializable 序列化接口
存储后的文件不是乱码(中文都在),
package com.itheima.d5_serializable;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
/**
* 目标: 学会对象序列化, 使用ObjectOutputStream 把内存中的对象存入到硬盘文件中
*/
public class ObjectOutputStreamDemo1 {
public static void main(String[] args) throws Exception{
// 1. 创建学生对象
Student s = new Student("程磊","chenlei","123456",21);
// 2. 对象序列化, 使用对象字节输出流包装字节输出流管道
// 文件输出流是低级流 被对象字节输出流包装住, 文件输出流里面写路径(选择输出到哪)
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("io-app2/src/obj.txt"));
// 3. 直接调用序列化方法
oos.writeObject(s); // 先再该对象的类必须实现Serializable序列化接口
// 4. 释放资源
oos.close();
System.out.println("序列化完成");
}
}