java使用序列流完成存入2个学生信息到students.txt文件, 然后将其内容再读取出来, 使用我们的Stream流遍历学生的所有学号信息
时间: 2024-05-07 12:17:13 浏览: 77
好的,我明白了。以下是将2个学生信息存入 students.txt 文件,并使用 Stream 流遍历学号信息的 Java 代码:
```
import java.io.*;
import java.util.Arrays;
public class Student {
private String id;
private String name;
private int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public static void main(String[] args) throws IOException {
// 创建学生对象
Student student1 = new Student("001", "张三", 18);
Student student2 = new Student("002", "李四", 20);
// 将学生信息写入文件
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students.txt"));
oos.writeObject(student1);
oos.writeObject(student2);
oos.close();
// 读取文件中的学生信息,并使用 Stream 流遍历所有学生的学号信息
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students.txt"));
Student[] students = new Student[2];
for (int i = 0; i < 2; i++) {
try {
students[i] = (Student) ois.readObject();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
Arrays.stream(students).map(Student::getId).forEach(System.out::println);
ois.close();
}
}
```
这段代码中,我们首先创建了一个 `Student` 类,包含了学号、姓名和年龄信息。然后通过 `ObjectOutputStream` 将两个学生对象写入到 `students.txt` 文件中,接着通过 `ObjectInputStream` 读取文件中的学生信息,并通过 Stream 流遍历所有学生的学号信息并输出。注意,在 `ObjectOutputStream` 和 `ObjectInputStream` 创建时,它们会自动创建一个序列化流和反序列化流,所以我们不需要再额外创建序列化流。
阅读全文