5、(对象的写入与读取)编写一个Java程序,在当前文件夹下新建一个文件ObjectFile.obj,往该文件中写入两个人的信息,再从该文件中读出信息并显示;
时间: 2024-03-01 09:53:19 浏览: 20
以下是一个简单的 Java 程序,可以实现向文件中写入两个人的信息,再从文件中读取信息并显示:
```java
import java.io.*;
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "Name: " + name + "\nAge: " + age;
}
}
public class ObjectFileDemo {
public static void main(String[] args) {
Person p1 = new Person("Alice", 20);
Person p2 = new Person("Bob", 30);
try {
// 创建文件输出流
FileOutputStream fos = new FileOutputStream("ObjectFile.obj");
// 创建对象输出流
ObjectOutputStream oos = new ObjectOutputStream(fos);
// 写入两个人的信息
oos.writeObject(p1);
oos.writeObject(p2);
// 关闭输出流
oos.close();
fos.close();
// 创建文件输入流
FileInputStream fis = new FileInputStream("ObjectFile.obj");
// 创建对象输入流
ObjectInputStream ois = new ObjectInputStream(fis);
// 读取两个人的信息并显示
Person p3 = (Person) ois.readObject();
Person p4 = (Person) ois.readObject();
System.out.println(p3);
System.out.println(p4);
// 关闭输入流
ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
在这个程序中,我们定义了一个 `Person` 类,它实现了 `Serializable` 接口,这样我们就可以将 `Person` 对象序列化并写入文件中。
在 `main` 方法中,我们先创建了两个 `Person` 对象 `p1` 和 `p2`,然后通过创建文件输出流和对象输出流,将这两个对象写入到文件中。
接着,我们创建了文件输入流和对象输入流,从文件中读取出这两个对象,并将它们转换为 `Person` 类型的对象 `p3` 和 `p4`,最后将它们打印出来。
需要注意的是,在读取对象时,我们需要将对象强制转换为 `Person` 类型,否则会出现类型转换异常。