序列化流是高级流,也是用来包装基本流的
序列化流属于 字节流 的一种,负责输出数据;反序列化流负责输入数据
序列化流 可以把 Java 中的 对象 写到本地文件中。但是写到文件中的数据我们看不懂,可以通过反序列化流把数据正确读取出来
序列化流 也叫 对象操作输出流
序列化流:
构造方法:public ObjectOutputStream (OutputStream out) → 把基本流包装成高级流
成员方法:public final void writeObject (Object obj) → 把对象序列化(写出)到文件中去
序列化流的细节:
使用 对象输出流 将 对象 保存到文件时会出现 NotSerializableException 异常,需要让 Javabean 类实现 Serializable 接口
Serializable 接口里面是没有抽象方法的,像这种没有抽象方法的接口叫做 标记型接口。一旦实现了这个接口,那么就表示当前的 Javabean 类可以被序列化
eg:利用序列化流,把一个对象写到本地文件中
Student stu = new Student("张三", 23);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\Java基础资料\\b.txt"));
oos.writeObject(stu);
oos.close();
反序列化流(对象操作输入流):
反序列化流 可以把序列化到本地文件中的对象 读取到程序中来
反序列化流:
构造方法:public ObjectInputStream (InputStream out) → 把基本流变成高级流
成员方法:public Object readObject () → 把序列化到本地文件中的对象 读取到程序中来;返回值就是读取到的对象,但是 是Object类型的,还需要强转一下
eg:把序列化到本地文件中的对象读取到程序中来
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\Java基础资料\\b.txt"));
Object o = ois.readObject();
System.out.println(o);
ois.close();
标签:文件,Java,读取,对象,基础,new,序列化 From: https://www.cnblogs.com/gagaya2/p/17787502.html