IO对象序列化

  1. 对象序列化就是持久化写入硬盘。相当于打游戏时的存档。

Person类

public class Prerson implements Serializable {
    
    
/*
* 序列化时会将这个版本信息也写入到硬盘
* 反序列化时会对比版本的数值是否相同,相同可转,不相同不可转
* */

    private static final long serialVersionUID = 2L;
    private String name;
    private int age;
    private String gender;
    private transient String[] bobby;  //短暂的,不进入持久化,不常用

    public Prerson(String name, int age, String gender, String[] bobby) {
    
    
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.bobby = bobby;
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public int getAge() {
    
    
        return age;
    }

    public void setAge(int age) {
    
    
        this.age = age;
    }

    public String getGender() {
    
    
        return gender;
    }

    public void setGender(String gender) {
    
    
        this.gender = gender;
    }

    public String[] getBobby() {
    
    
        return bobby;
    }

    public void setBobby(String[] bobby) {
    
    
        this.bobby = bobby;
    }

    @Override
    public String toString() {
    
    
        return "Prerson{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                ", bobby=" + Arrays.toString(bobby) +
                '}';
    }
}
  • transient,短暂的,不进入持久化,不常用

将person类数据序列化(持久化)操作

public class OOSDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        Prerson person = new Prerson("闫老师",17,"男",new String[] {
    
    "吃饭","睡觉"});

        //创建低级流
        FileOutputStream fos = new FileOutputStream("person.obj");
        ObjectOutputStream oss = new ObjectOutputStream(fos);

        /*
        * 要序列化的对象必须实现可序列化的接口
        * 否则在进行序列化时会报错
        * 1.对象流会将指定的对象转换成一组字节
        * 这个过程叫序列化
        * 2.将序列化后的这组字节写到流对象指定的硬盘路径上
        * 这个过程叫数据持久化
        * */
        oss.writeObject(person);
        System.out.println("over");
        oss.close();
    }
}

读取操作

public class OISDemo {
    
    
    public static void main(String[] args) throws IOException, ClassNotFoundException {
    
    
        FileInputStream fis = new FileInputStream("person.obj");
        ObjectInputStream ois = new ObjectInputStream(fis);

        Prerson p = (Prerson) ois.readObject();

        System.out.println(p);
        ois.close();
    }
}

おすすめ

転載: blog.csdn.net/sinat_33940108/article/details/120841532