编写Java应用程序,创建一个可序列化类,将该类的对象写入到文件中。用对象输入流读取并显示对象信息
时间: 2024-03-19 09:43:07 浏览: 17
好的,下面是一个示例程序,演示如何通过对象输入流读取并显示对象信息。
首先,我们需要创建一个可序列化的类,这里我们使用上一个问题中的 `Person` 类。
```java
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
然后,我们可以创建一个 `ObjectOutputStream` 对象,并使用它将 `Person` 类的对象写入到文件中。
```java
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) {
Person person = new Person("张三", 25);
try {
FileOutputStream fos = new FileOutputStream("person.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(person);
oos.close();
fos.close();
System.out.println("对象已写入文件");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个 `Person` 类的对象,并将其写入名为 `person.ser` 的文件中。
接着,我们可以创建一个对象输入流,并使用它从文件中读取 `Person` 类的对象。注意,我们必须按照写入时的顺序读取对象。
```java
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Main {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("person.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Person person = (Person) ois.readObject();
ois.close();
fis.close();
System.out.println("对象已从文件中读取");
System.out.println("姓名:" + person.getName());
System.out.println("年龄:" + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个对象输入流,并使用它从文件中读取 `Person` 类的对象。然后,我们可以通过对象的方法访问对象的属性,并将它们打印到控制台上。
如果一切顺利,你应该能够看到如下输出:
```
对象已写入文件
对象已从文件中读取
姓名:张三
年龄:25
```