Java中如何实现对象的序列化和反序列化?
时间: 2024-04-24 11:18:48 浏览: 13
Java中可以通过实现Serializable接口来实现对象的序列化和反序列化[^1]。下面是一个简单的示例:
1. 实现Serializable接口
```java
import java.io.Serializable;
public class Student implements Serializable {
private String name;
private int age;
// 构造方法、getter和setter省略
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
2. 对象的序列化
```java
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class SerializationDemo {
public static void main(String[] args) {
Student student = new Student("Alice", 20);
try {
FileOutputStream fileOut = new FileOutputStream("student.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(student);
out.close();
fileOut.close();
System.out.println("对象已序列化并保存到文件中");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
3. 对象的反序列化
```java
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class DeserializationDemo {
public static void main(String[] args) {
try {
FileInputStream fileIn = new FileInputStream("student.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
Student student = (Student) in.readObject();
in.close();
fileIn.close();
System.out.println("从文件中读取到的对象为:" + student);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
以上代码演示了如何在Java中实现对象的序列化和反序列化。首先,需要实现Serializable接口,并在类中添加一个无参构造方法。然后,可以使用ObjectOutputStream将对象序列化并保存到文件中,使用ObjectInputStream从文件中读取并反序列化对象。通过这种方式,可以在Java中方便地实现对象的持久化存储和传输[^2]。