登录
原创

Java 的对象输入输出流

发布于 2020-12-30 阅读 546
  • 后端
原创

对象输入输出流是java io流的一种,通过ObjectOutputStream.writeObject(Object obj)将对象写入ObjectOutputStream,通过ObjectInputStream.readObject()读出对象。

例子

创建Student类并实现Serializable接口

public class Student implements Serializable {

    private static final long serialVersionUID = 1L;
    private String name;
    private int age;

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

    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;
    }

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

写一个测试类

public class ObjectOutputStreamDemo {
    public static void main(String[] args) {
        try {
            Student s1 = new Student("张三", 18);
            Student s2 = new Student("李四", 19);
            List<Student> list = new ArrayList<>();
            list.add(s1);
            list.add(s2);
            // create a new file with an ObjectOutputStream
            FileOutputStream ot = new FileOutputStream("students.txt");
            ObjectOutputStream oot = new ObjectOutputStream(ot);
            // write something in the file
            oot.writeObject(list);
            // close the stream
            oot.close();
            // create an ObjectInputStream for the file we created before
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.txt"));
            // read and print what we wrote before
            List<Student> studentList = (List<Student>) ois.readObject();
            for (Student s : studentList) {
                System.out.println(s.toString());
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

输出结果

Student{name='张三', age=18}
Student{name='李四', age=19}

评论区

励志做一条安静的咸鱼,从此走上人生巅峰。

0

0

0

举报