Maison  >  Article  >  Java  >  Comment faire la sérialisation et la désérialisation Java ?

Comment faire la sérialisation et la désérialisation Java ?

王林
王林original
2024-04-15 10:33:02329parcourir

La sérialisation et la désérialisation Java sont un mécanisme de persistance utilisé pour stocker des objets sous forme de séquences d'octets. La sérialisation utilise l'interface java.io.Serializing et ObjectOutputStream pour écrire des objets dans un fichier ou un réseau. La désérialisation utilise un ObjectInputStream pour lire une séquence d'octets à partir d'un fichier ou d'un réseau et reconstruire l'objet d'origine. La sérialisation et la désérialisation sont utilisées en Java pour conserver des objets, tels que des objets utilisateur persistants pour un rechargement ultérieur.

Comment faire la sérialisation et la désérialisation Java ?

Un guide détaillé sur la sérialisation et la désérialisation Java

Introduction

La sérialisation est le processus de stockage d'objets en octets dans un fichier ou sur le réseau afin qu'ils puissent être désérialisés et désérialisés ultérieurement Reconstruire l'objet d'origine. La désérialisation est à l'opposé, elle convertit les données sous forme d'octets en objets bruts.

Sérialisation

En Java, les objets peuvent être sérialisés à l'aide de l'interface java.io.Serializing. Pour sérialiser un objet dans un fichier, vous pouvez utiliser ObjectOutputStream : 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 接口和 ObjectOutputStreamObjectInputStreamrrreee

🎜Désérialisation🎜🎜🎜Pour désérialiser un objet d'un fichier, vous pouvez utiliser ObjectInputStream : 🎜rrreee 🎜🎜Cas pratique : objets utilisateur persistants🎜🎜🎜Supposons que nous ayons un objet Utilisateur et que nous devions le stocker dans un fichier pour la persistance. Nous pouvons faire ceci : 🎜rrreee🎜🎜Conclusion🎜🎜🎜La sérialisation Java est un mécanisme puissant pour la persistance des objets. Avec l'interface java.io.Serializing et les classes ObjectOutputStream et ObjectInputStream, nous pouvons facilement sérialiser et désérialiser des objets. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn