使用数据输入流ObjectOutputStream 和数据输出流ObjectInputStream 可以读取或写入任何Java 对象的数据,不用关心它们的实际长度是多少字节。一般与文件输入流FileInputStream 和输出流类FileOutputStream 一起使用。在程序创建两个学生对象,然后编写将该两个对象保存到student.in文件中代码,再编写从文件student.in中读出对象,并将对象的成员值显示到屏幕上,不要修改Student.java代码,观察数据是否有变量。 Student定义如下: public class Student implements Serializable { private int id; private String name; private int age; private char sex; private long serialVersionUID=1L; public Student(int id,String name,char sex,int age){ this.id = id; this.name = name; this.sex = sex; this.age = age; } public String toString(){ return id+":"+name+":"+sex+":"+age; } }
时间: 2024-01-06 07:03:50 浏览: 55
Java的DataInputStream和DataOutputStream数据输入输出流
5星 · 资源好评率100%
以下是保存到文件以及读取对象的代码:
```java
import java.io.*;
public class ObjectStreamExample {
public static void main(String[] args) {
// 创建两个学生对象
Student student1 = new Student(123, "Alice", 'F', 20);
Student student2 = new Student(456, "Bob", 'M', 22);
try {
// 创建文件输出流和对象输出流
FileOutputStream fileOutput = new FileOutputStream("student.in");
ObjectOutputStream objectOutput = new ObjectOutputStream(fileOutput);
// 将学生对象写入文件
objectOutput.writeObject(student1);
objectOutput.writeObject(student2);
// 关闭输出流
objectOutput.close();
fileOutput.close();
// 创建文件输入流和对象输入流
FileInputStream fileInput = new FileInputStream("student.in");
ObjectInputStream objectInput = new ObjectInputStream(fileInput);
// 从文件中读取学生对象并显示
Student readStudent1 = (Student) objectInput.readObject();
Student readStudent2 = (Student) objectInput.readObject();
System.out.println("读取到的学生对象1:" + readStudent1);
System.out.println("读取到的学生对象2:" + readStudent2);
// 关闭输入流
objectInput.close();
fileInput.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
程序输出:
```
读取到的学生对象1:123:Alice:F:20
读取到的学生对象2:456:Bob:M:22
```
阅读全文