Home  >  Article  >  Java  >  How to do java serialization and deserialization?

How to do java serialization and deserialization?

王林
王林Original
2024-04-15 10:33:02369browse

Java serialization and deserialization is a persistence mechanism for storing objects as a sequence of bytes. Serialization uses the java.io.Serializable interface and ObjectOutputStream to write objects to a file or network. Deserialization uses an ObjectInputStream to read a sequence of bytes from a file or network and reconstruct the original object. Serialization and deserialization are used in Java to persist objects, such as persisting user objects for later reloading.

How to do java serialization and deserialization?

An in-depth guide to Java serialization and deserialization

Introduction

Serialization refers to storing an object in a file or network as bytes so that it can be deserialized later and reconstruct the original object. Deserialization is the opposite, it converts data in bytes form into raw objects.

Serialization

In Java, objects can be serialized using the java.io.Serializable interface. To serialize an object into a file, you can use ObjectOutputStream:

// 创建一个对象要序列化的 FileOutputStream
FileOutputStream fileOut = new FileOutputStream("object.ser");

// 使用 ObjectOutputStream 将对象写入文件中
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(myObject);

// 关闭 ObjectOutputStream
out.close();

Deserialization

To deserialize an object from a file, You can use ObjectInputStream:

// 创建一个 FileInputStream 以读取序列化的文件
FileInputStream fileIn = new FileInputStream("object.ser");

// 使用 ObjectInputStream 从文件中读取对象
ObjectInputStream in = new ObjectInputStream(fileIn);
MyObject myDeserializedObject = (MyObject) in.readObject();

// 关闭 ObjectInputStream
in.close();

Practical case: Persistent user object

Assume we have a User object, we It needs to be stored in a file for persistence. We can do this:

// 创建一个 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

Conclusion

Java serialization is a powerful mechanism for object persistence. Through the java.io.Serializable interface and the ObjectOutputStream and ObjectInputStream classes we can easily serialize and deserialize objects.

The above is the detailed content of How to do java serialization and deserialization?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn