java序列化如何实现存档
时间: 2024-06-03 19:10:21 浏览: 11
Java序列化可以将Java对象转换成字节流,以便将它们存储到磁盘或通过网络传输。要实现Java序列化,需要让类实现java.io.Serializable接口,并使用ObjectOutputStream和ObjectInputStream类来写入和读取对象。具体过程如下:
1. 让类实现Serializable接口
例如,要对Person类进行序列化,在类定义中添加implements Serializable:
public class Person implements Serializable {
private String name;
private int age;
//...
}
2. 创建ObjectOutputStream
ObjectOutputStream是一个可以将Java对象写入输出流的类。可以使用FileOutputStream将其连接到文件,进行文件操作;或者使用Socket.getOutputStream()将其连接到套接字,进行网络操作。
FileOutputStream fileOut = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
3. 写入对象
使用writeObject()方法将对象写入输出流中:
Person person = new Person("John", 28);
out.writeObject(person);
4. 关闭ObjectOutputStream
在对象写入完毕后,应该关闭ObjectOutputStream:
out.close();
5. 创建ObjectInputStream
ObjectInputStream是一个可以从输入流中读取Java对象的类。可以使用FileInputStream将其连接到文件,进行文件操作;或者使用Socket.getInputStream()将其连接到套接字,进行网络操作。
FileInputStream fileIn = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(fileIn);
6. 读取对象
使用readObject()方法从输入流中读取对象:
Person person = (Person) in.readObject();
7. 关闭ObjectInputStream
在对象读取完毕后,应该关闭ObjectInputStream:
in.close();
这样就完成了Java序列化的过程,可以将Java对象存储到磁盘或通过网络传输,实现数据的持久化和共享。