Serializable 序列化 使用案例
时间: 2024-05-14 15:19:58 浏览: 90
支持序列化的应用程序实例
4星 · 用户满意度95%
Serializable 序列化是将一个对象转换为字节序列的过程,可以用于对象的持久化、网络传输等场景。以下是一个使用 Serializable 序列化的案例:
假设我们有一个 Person 类,包含姓名和年龄两个属性:
```java
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter 和 setter 方法省略
}
```
现在我们想将一个 Person 对象保存到文件中,可以使用 ObjectOutputStream 进行序列化:
```java
Person person = new Person("Tom", 18);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"))) {
oos.writeObject(person); // 将 Person 对象写入文件
} catch (IOException e) {
e.printStackTrace();
}
```
注:try-with-resources 语句会在代码执行完成后自动关闭流,无需手动调用 close 方法。
接下来,我们可以从文件中读取 Person 对象并进行反序列化:
```java
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"))) {
Person person = (Person) ois.readObject(); // 从文件中读取 Person 对象
System.out.println(person.getName() + " " + person.getAge()); // 输出:Tom 18
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
```
注:ObjectInputStream.readObject 方法会抛出 ClassNotFoundException 异常,需要进行捕获或声明抛出。
通过 Serializable 序列化,我们可以方便地将对象保存到文件中并进行读取,从而实现对象的持久化,这在很多应用场景下非常有用。
阅读全文