io流(对象流总结)


对象流

  • 对象流就是对引用数据类型进行操作
  • 序列化:将对象的状态信息转换为可以存储或传输的形式的过程,因此类需要序列化后才可以存储到文件中

对象输出流:

很简单,就三句话,将把一个对象导入指定文件中,要注意:被导入的对象必须要实现一个借口(Serializable,可序列化接口),而这个接口就是一个标志,在没有作用,标志你可以被导入到硬盘中

我们写进文件中的信息我们看不懂,但是计算机可以看懂

package com.bjsxt.test08;

import java.io.*;

public class Test {
    public static void main(String[] args) throws IOException {
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("D:\\a\\a.txt")));
        oos.writeObject(new Student(18,"hao"));
        oos.close();
    }
}

对象输入流:

注意:

  1. 类中要有ToString方法
  2. 要给类加一个序列化版本号,这样就可以无论如何修改都可以同步了,就不会出现异常
  3. 类中static,transient修饰的属性不会参与序列化
  4. 如果你把引用数据类型当做属性的话(需要创建对象),必须将它进行序列化操作,不然会影响外边的序列化操作
package com.bjsxt.test08;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class Test02 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("D:\\a\\a.txt")));
        Object o = ois.readObject();
        System.out.println(o);
        ois.close();
    }
}
  • 实现类如何生成序列化版本号?
  1. 点击File------->Settings--------->inspections

  2. 在实现类上Alt+Insert生成序列化版本化。