序列化对象

class Student implements Serializable{
    private String name;
    private int age;
    private int grade;

    public Student(String name, int age, int grade) {
        this.name = name;
        this.age = age;
        this.grade = grade;
    }

    @Override
    public boolean equals(Object obj) {
        Student s = (Student) obj;
        if (s.name.equals(this.name) && s.age == this.age && s.grade == this.grade) {
            return true;
        } else {
            return false;
        }
    }

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

class SerializeTest {
    public void serTest() {
        try {
            Student s1 = new Student("w", 18, 100);
            System.out.println(s1);
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("obj.dat"));
            out.writeObject(s1);
            out.close();
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("obj.dat"));
            Student s2 = (Student) in.readObject();
            System.out.println(s2);
            System.out.println(s1==s2);
            System.out.println(s1.equals(s2));
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }
}
posted @ 2020-09-11 00:25  hunter-w  阅读(86)  评论(0编辑  收藏  举报