Maison> Java> javaDidacticiel> le corps du texte

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

王林
Libérer: 2024-04-15 10:33:02
original
297 Les gens l'ont consulté

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'interfacejava.io.Serializing. Pour sérialiser un objet dans un fichier, vous pouvez utiliserObjectOutputStream:java.io.Serializable接口对对象进行序列化。要将对象序列化到文件中,可以使用ObjectOutputStream

// 创建一个对象要序列化的 FileOutputStream FileOutputStream fileOut = new FileOutputStream("object.ser"); // 使用 ObjectOutputStream 将对象写入文件中 ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(myObject); // 关闭 ObjectOutputStream out.close();
Copier après la connexion

反序列化

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

// 创建一个 FileInputStream 以读取序列化的文件 FileInputStream fileIn = new FileInputStream("object.ser"); // 使用 ObjectInputStream 从文件中读取对象 ObjectInputStream in = new ObjectInputStream(fileIn); MyObject myDeserializedObject = (MyObject) in.readObject(); // 关闭 ObjectInputStream in.close();
Copier après la connexion

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

假设我们有一个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
Copier après la connexion

结论

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

DésérialisationPour désérialiser un objet d'un fichier, vous pouvez utiliser ObjectInputStream: rrreee Cas pratique : objets utilisateur persistantsSupposons que nous ayons un objet Utilisateuret que nous devions le stocker dans un fichier pour la persistance. Nous pouvons faire ceci : rrreeeConclusionLa sérialisation Java est un mécanisme puissant pour la persistance des objets. Avec l'interface java.io.Serializinget les classes ObjectOutputStreamet 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!