定义学生类,包含学生的基本信息(包括学号、姓名和考试成绩),键盘接收学生信息(自己的学号、姓名和考试成绩),并将学生对象串行化保存到文件studentscore.obj中。
时间: 2024-12-25 21:35:14 浏览: 0
首先,我们需要创建一个名为`Student`的类,该类包含学生的基本信息属性如学号、姓名和考试成绩。这里我们使用Java的`ObjectOutputStream`来实现对象的序列化。
```java
import java.io.*;
public class Student {
private String id; // 学号
private String name; // 姓名
private double score; // 考试成绩
public Student(String id, String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
// 获取和设置方法省略,因为它们是标准的 getter 和 setter 方法
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", score=" + score +
'}';
}
public static void saveToFile(Student student, String filename) throws IOException {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename))) {
oos.writeObject(student);
System.out.println("Student saved to file successfully.");
}
}
}
```
接下来,你可以编写一个主程序,从键盘接收学生信息并调用`saveToFile`方法:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter student details:");
System.out.print("ID: ");
String id = scanner.nextLine();
System.out.print("Name: ");
String name = scanner.nextLine();
System.out.print("Score: ");
double score = scanner.nextDouble();
Student student = new Student(id, name, score);
String filename = "studentscore.obj";
Student.saveToFile(student, filename);
scanner.close();
}
}
```
运行这个程序后,根据提示输入学生信息,然后程序会将学生对象保存到指定的文件`studentscore.obj`中。
阅读全文