编写Java应用程序,创建一个可序列化类 ,将该类的对象写入到文件中。用对象输入流读取并显示对象信息。
时间: 2024-03-16 17:42:18 浏览: 51
好的,根据您的要求,我来给您编写一个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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
在这个例子中,我们定义了一个名为Person的类,该类实现了Serializable接口,以使其对象可以被序列化。
接下来,我们需要在Java应用程序中创建一个Person对象,并将其写入文件中。代码如下:
```
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class SerializePerson {
public static void main(String[] args) {
Person person = new Person("张三", 20);
String fileName = "person.ser";
try {
FileOutputStream fileOut = new FileOutputStream(fileName);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(person);
out.close();
fileOut.close();
System.out.println("Person对象已被序列化并写入文件 " + fileName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们先创建了一个Person对象,然后将其写入到名为person.ser的文件中。
最后,我们需要使用对象输入流读取该文件中的数据,并显示该对象的信息。代码如下:
```
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class DeserializePerson {
public static void main(String[] args) {
String fileName = "person.ser";
try {
FileInputStream fileIn = new FileInputStream(fileName);
ObjectInputStream in = new ObjectInputStream(fileIn);
Person person = (Person) in.readObject();
in.close();
fileIn.close();
System.out.println("从文件 " + fileName + " 中读取到的Person对象信息如下:");
System.out.println(person.toString());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先创建了一个名为person.ser的文件输入流,然后使用对象输入流读取该文件中的Person对象,并将其转换为Person类型。最后,我们将该对象的信息打印到控制台上。
这就是一个完整的Java应用程序,实现了创建可序列化类并将其对象写入文件中,然后使用对象输入流读取并显示该对象信息的功能。
阅读全文