java实现创建一个学生类对象(姓名,年纪,三门课成绩),请实现该学生对象的文件持久化存储。 将学生相关信息存放到文件中。 将文件中的学生信息读取出来还原成学生对象。
时间: 2024-03-03 11:53:36 浏览: 10
好的,这是一个涉及到对象持久化存储的问题,可以使用Java中的序列化机制来实现。以下是示例代码:
```java
import java.io.*;
class Student implements Serializable {
private String name;
private int age;
private int score1;
private int score2;
private int score3;
public Student(String name, int age, int score1, int score2, int score3) {
this.name = name;
this.age = age;
this.score1 = score1;
this.score2 = score2;
this.score3 = score3;
}
public String toString() {
return name + "(" + age + "): " + score1 + ", " + score2 + ", " + score3;
}
}
public class Main {
public static void main(String[] args) throws IOException, ClassNotFoundException {
// 创建学生对象
Student student = new Student("张三", 18, 90, 80, 85);
// 将学生对象存储到文件中
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("student.dat"));
out.writeObject(student);
out.close();
// 从文件中读取学生对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("student.dat"));
Student restoredStudent = (Student) in.readObject();
in.close();
// 打印学生对象
System.out.println(restoredStudent);
}
}
```
上述代码中,我们先定义了一个`Student`类,该类包含学生的姓名、年龄、三门课的成绩等属性,并实现了`Serializable`接口。然后创建了一个学生对象`student`,并将其使用`ObjectOutputStream`类存储到文件中。接着,我们再从文件中读取该学生对象,并使用`ObjectInputStream`类将其还原成学生对象。最后,我们打印输出还原后的学生对象。
需要注意的是,使用Java序列化机制进行持久化存储时,需要保证被序列化的对象实现了`Serializable`接口。同时,需要注意序列化和反序列化的顺序,否则可能会导致程序出错。