Java 将若干个Student对象添加到List集合中,然后将List以对象的方式存储到txt文件中,再从txt文件读取对象,并且打印List。
时间: 2024-04-14 22:26:34 浏览: 94
java代码-定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据。
可以使用Java的序列化(serialization)机制来实现将对象存储到文件中,并从文件中读取对象。
首先,你需要创建一个`Student`类,该类需要实现`Serializable`接口,以使其对象可以被序列化和反序列化。
```java
import java.io.Serializable;
public class Student implements Serializable {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
// getters and setters
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
接下来,你可以创建一个包含`Student`对象的`List`集合,并将该集合序列化到文件中。
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Student> studentList = new ArrayList<>();
studentList.add(new Student("Alice", 20));
studentList.add(new Student("Bob", 21));
studentList.add(new Student("Charlie", 22));
try (FileOutputStream fos = new FileOutputStream("students.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos)) {
oos.writeObject(studentList);
System.out.println("List serialized to file.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码将`studentList`对象序列化到名为`students.txt`的文件中。
接下来,你可以从文件中读取对象并打印出来。
```java
import java.io.*;
import java.util.List;
public class Main {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("students.txt");
ObjectInputStream ois = new ObjectInputStream(fis)) {
List<Student> studentList = (List<Student>) ois.readObject();
System.out.println("List deserialized from file:");
for (Student student : studentList) {
System.out.println(student);
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
以上代码从`students.txt`文件中反序列化`studentList`对象,并打印出来。
注意:在序列化和反序列化过程中,需要处理`IOException`和`ClassNotFoundException`异常。
阅读全文