1)通过实现Serializable接口,实现对象的序列化与反序列化 (2)将序列化后的对象,以JSON形式或自定义的形式保存在文本文件 (3) 利用改文件实现对象的反序列化 (4)序列化过程中体验transient关键词
时间: 2024-05-10 20:20:32 浏览: 5
1. 实现Serializable接口
要实现对象的序列化和反序列化,需要让该对象实现Serializable接口。该接口是一个标记接口,只需要让对象实现该接口即可。例如:
```java
public class Person implements Serializable {
private String name;
private int age;
// 省略其他属性和方法
}
```
2. 将序列化后的对象保存在文本文件
在将对象序列化为文本文件之前,需要先创建一个ObjectOutputStream对象,并将该对象写入文件中。例如:
```java
Person person = new Person("张三", 20);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.txt"))) {
oos.writeObject(person);
}
```
上述代码将Person对象序列化为person.txt文件。
3. 实现对象的反序列化
要实现对象的反序列化,需要创建一个ObjectInputStream对象,并从文件中读取该对象。例如:
```java
Person person;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.txt"))) {
person = (Person) ois.readObject();
}
```
上述代码从person.txt文件中读取Person对象,并将其反序列化为person变量。
4. transient关键词的使用
transient关键词可以用于修饰类的属性,表示该属性不参与序列化。例如:
```java
public class Person implements Serializable {
private String name;
private int age;
private transient String password;
// 省略其他属性和方法
}
```
上述代码中,password属性被标记为transient,因此在序列化时不会将其写入文件中。当反序列化时,该属性的值将会被初始化为null。
总结
通过实现Serializable接口,可以实现对象的序列化与反序列化。序列化后的对象可以保存为文本文件,并在需要时反序列化为原始对象。transient关键词可以用于修饰属性,使其在序列化时被忽略,从而保护敏感数据。