要求定义5个学生对象,数据如下:学生1:("李四", 25, "河南省郑州市"),学生2:("韩梅梅", 19, "焦作市武陟县"),学生3:("李磊", 20, "郑州市中原区"),学生4:("张明", 21, "修武县方庄"),学生5:("吴林", 18, "开封市祥符区")。 请将这5个学生对象数据写入到“d:\\学生信息.txt”文件中,并在程序中反序列化输出5条学生信息。用java
时间: 2023-07-08 22:48:51 浏览: 40
好的,以下是Java代码实现:
```java
import java.io.*;
import java.util.ArrayList;
class Student implements Serializable {
private String name;
private int age;
private String address;
public Student(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
}
public class Main {
public static void main(String[] args) {
// 定义5个学生对象
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("李四", 25, "河南省郑州市"));
students.add(new Student("韩梅梅", 19, "焦作市武陟县"));
students.add(new Student("李磊", 20, "郑州市中原区"));
students.add(new Student("张明", 21, "修武县方庄"));
students.add(new Student("吴林", 18, "开封市祥符区"));
// 将学生对象写入文件
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:\\学生信息.txt"))) {
for (Student s : students) {
oos.writeObject(s);
}
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中反序列化输出学生信息
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:\\学生信息.txt"))) {
for (int i = 0; i < 5; i++) {
Student s = (Student) ois.readObject();
System.out.printf("姓名:%s,年龄:%d,地址:%s\n", s.getName(), s.getAge(), s.getAddress());
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
注意,这里使用了 Java 的序列化和反序列化方式,将学生对象写入文件和从文件中读取学生对象。在写入文件时,我们使用了一个 for-each 循环将每个学生对象依次写入文件;在读取文件时,我们同样使用了一个 for 循环,每次读取一个学生对象并输出其信息。同时,需要注意在类定义中实现 Serializable 接口。
阅读全文