Java实现:生成一个学生对象Student,对象有学号,年龄,身高。将学生对象存储到文件,然后从文件中读取数据重新生成Student对象。
时间: 2024-02-27 20:51:46 浏览: 19
好的,以下是Java的代码实现:
```java
import java.io.*;
public class Student implements Serializable {
private int id;
private int age;
private double height;
public Student(int id, int age, double height) {
this.id = id;
this.age = age;
this.height = height;
}
public int getId() {
return id;
}
public int getAge() {
return age;
}
public double getHeight() {
return height;
}
public String toString() {
return "Student{" +
"id=" + id +
", age=" + age +
", height=" + height +
'}';
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
Student student = new Student(1001, 18, 1.75);
// 将学生对象存储到文件
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.dat"));
oos.writeObject(student);
oos.close();
// 从文件中读取数据重新生成Student对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.dat"));
Student student2 = (Student) ois.readObject();
ois.close();
System.out.println(student2);
}
}
```
上述代码定义了一个`Student`类,实现了`Serializable`接口,以便将对象序列化到文件中。在`main`方法中,先创建一个`Student`对象,然后将对象存储到文件中。接着,从文件中读取数据,重新生成`Student`对象,并将其打印到控制台。输出结果为:
```
Student{id=1001, age=18, height=1.75}
```
注意,在序列化和反序列化过程中,要分别创建`ObjectOutputStream`和`ObjectInputStream`对象来进行操作,并在结束后关闭流。此外,读取文件时需要进行类型转换,将`Object`类型转换为`Student`类型。