Heim > Java > javaLernprogramm > Hauptteil

Wie führt man Java-Serialisierung und -Deserialisierung durch?

王林
Freigeben: 2024-04-15 10:33:02
Original
386 Leute haben es durchsucht

Java-Serialisierung und -Deserialisierung ist ein Persistenzmechanismus, der zum Speichern von Objekten als Bytesequenzen verwendet wird. Die Serialisierung verwendet die java.io.Serializable-Schnittstelle und ObjectOutputStream, um Objekte in eine Datei oder ein Netzwerk zu schreiben. Bei der Deserialisierung wird ein ObjectInputStream verwendet, um eine Folge von Bytes aus einer Datei oder einem Netzwerk zu lesen und das ursprüngliche Objekt zu rekonstruieren. Serialisierung und Deserialisierung werden in Java verwendet, um Objekte beizubehalten, beispielsweise um Benutzerobjekte für ein späteres Neuladen beizubehalten.

Wie führt man Java-Serialisierung und -Deserialisierung durch?

Eine ausführliche Anleitung zur Java-Serialisierung und -Deserialisierung

Einführung

Serialisierung ist der Prozess des Speicherns von Objekten in Bytes in einer Datei oder im Netzwerk, damit sie später deserialisiert und neu erstellt werden können das Originalobjekt. Deserialisierung ist das Gegenteil, sie wandelt Daten in Byteform in Rohobjekte um.

Serialisierung

In Java können Objekte mithilfe der Schnittstelle java.io.Serializable serialisiert werden. Um ein Objekt in eine Datei zu serialisieren, können Sie ObjectOutputStream verwenden: java.io.Serializable 接口对对象进行序列化。要将对象序列化到文件中,可以使用 ObjectOutputStream

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

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

// 关闭 ObjectOutputStream
out.close();
Nach dem Login kopieren

反序列化

要从文件中反序列化对象,可以使用 ObjectInputStream

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

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

// 关闭 ObjectInputStream
in.close();
Nach dem Login kopieren

实战案例:持久化用户对象

假设我们有一个 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
Nach dem Login kopieren

结论

Java 序列化是用于对象持久化的强大机制。通过 java.io.Serializable 接口和 ObjectOutputStreamObjectInputStreamrrreee

🎜Deserialisierung🎜🎜🎜Um ein Objekt aus einer Datei zu deserialisieren, können Sie ObjectInputStream verwenden: 🎜rrreee 🎜🎜Praktischer Fall: Persistierende Benutzerobjekte🎜🎜🎜Angenommen, wir haben ein Benutzer-Objekt und müssen es zur Persistenz in einer Datei speichern. Wir können das tun: 🎜rrreee🎜🎜Fazit🎜🎜🎜Java-Serialisierung ist ein leistungsstarker Mechanismus für die Objektpersistenz. Mit der Schnittstelle java.io.Serializable und den Klassen ObjectOutputStream und ObjectInputStream können wir Objekte einfach serialisieren und deserialisieren. 🎜

Das obige ist der detaillierte Inhalt vonWie führt man Java-Serialisierung und -Deserialisierung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage