Serializable序列化

序列号方法类:

    /*
    * 对象序列号流
    * 1.类每次都会生成一个版本,当类被修改后。版本改变,反序列化就会保存,可以用自定义serialVersionUID解决
    * 2.类中有字段不想被序列化,可以加transient 修饰
    * */
    public void objectSerialTest() throws IOException, ClassNotFoundException {

        String path="E:\\Java\\00_0\\6.txt";
        Student std=new Student();
        std.setAge(10);
        std.setName("ajsd数度快");

        //对象序列化
        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(path));
        oos.writeObject(std);
        oos.close();

        //对象反序列化
        ObjectInputStream ois=new ObjectInputStream(new FileInputStream(path));
        Object o = ois.readObject();

        Student s=(Student)o;
        System.out.println(s.getAge());
        System.out.println(s.getName());
        ois.close();

    }

Student类:

import java.io.Serializable;

public class Student implements Serializable {
    private static final long serialVersionUID = 42L;
    private transient int age;
    private String name;

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    public int getAge() {
        return age;
    }

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

    public String getName() {
        return name;
    }

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

 

posted @ 2020-10-15 17:47  zhuyapeng  阅读(93)  评论(0编辑  收藏  举报