首页 > 图灵资讯 > 技术篇>正文
如何进行java序列化和反序列化?
2024-04-15 13:29:42
java 序列化和反序列化是将对象存储为字节序列的一种持久机制。序列化使用 java.io.serializable 接口和 objectoutputstream,将对象写入文件或网络。反序列化使用 objectinputstream,读取文件或网络中的字节序列,重建原始对象。在序列化和反序列化中 java 用于持久对象,如持久用户对象,以便以后重新加载。
Java 序列化和反序列化的深入指南
简介
序列化是指将对象以字节形式存储在文件或网络中,以便将来能够反序列化并重建原始对象。相反,反序列化将字节形式的数据转换为原始对象。
序列化
在 Java 中,可使用 java.io.Serializable
接口对象进行序列化。将对象序列化为文件,可以使用 ObjectOutputStream
:
// 创建一个对象需要序列化。 FileOutputStream FileOutputStream fileOut = new FileOutputStream("object.ser"); // 使用 ObjectOutputStream 将对象写入文件中 ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(myObject); // 关闭 ObjectOutputStream out.close();
登录后复制
反序列化
可以从文件中反序列化对象 ObjectInputStream
:
// 创建一个 FileInputStream 读取序列化文件 FileInputStream fileIn = new FileInputStream("object.ser"); // 使用 ObjectInputStream 从文件中读取对象 ObjectInputStream in = new ObjectInputStream(fileIn); MyObject myDeserializedObject = (MyObject) in.readObject(); // 关闭 ObjectInputStream in.close();
登录后复制
实战案例:持久用户对象
假设我们有一个 User
对象,我们需要将其存储在文件中进行持久处理。我们可以这样做:
// 创建一个 User 对象 User user = new User("John", "Doe"); // 将 User 将对象序列化为文件 FileOutputStream fileOut = new FileOutputStream("user.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(user); out.close(); // 从文件中反序列化 User 对象 FileInputStream fileIn = new FileInputStream("user.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); User deserializedUser = (User) in.readObject(); in.close(); // 确认反序列化 User 对象 System.out.println(deserializedUser.getName() + " " + deserializedUser.getLastName()); // 打印:John Doe
登录后复制
结论
Java 序列化是对象持久化的强大机制。通过 java.io.Serializable
接口和 ObjectOutputStream
和 ObjectInputStream
类,我们可以很容易地序列化和反序列化对象。
以上是如何进行java序列化和反序列化?详情请关注图灵教育其他相关文章!