Maison> Java> javaDidacticiel> le corps du texte

Quel est le processus de sérialisation d'objets en Java ?

WBOY
Libérer: 2024-04-12 11:30:02
original
479 Les gens l'ont consulté

En Java, la sérialisation d'objets convertit les objets en flux d'octets et la désérialisation restaure les flux d'octets en objets. La sérialisation nécessite l'implémentation de l'interface Serialisable, la préparation de l'objet et l'utilisation d'ObjectOutputStream pour écrire des données ; la désérialisation utilise ObjectInputStream pour lire les données et reconstruire l'objet. Par exemple, le code sérialise un objet Person avec des propriétés de nom et d'âge et le désérialise à partir d'un fichier pour imprimer les informations.

Quel est le processus de sérialisation dobjets en Java ?

Processus de sérialisation d'objets en Java

Introduction

La sérialisation est un processus de conversion d'objets en un flux d'octets et de leur stockage dans un fichier ou sur le réseau. La désérialisation est le processus inverse de conversion d'un flux d'octets stocké en objet d'origine. L'interface principale pour la sérialisation d'objets en Java estSérialisable.Serializable

序列化过程

1. 实现Serializable接口:类必须实现Serializable接口才能进行序列化。

2. 准备对象:要序列化的对象必须实现writeObject方法,该方法将对象的字段写入输出流。如果对象包含其他可序列化的对象,则writeObject方法也需要调用这些对象的writeObject方法。

3. 创建ObjectOutputStream使用ObjectOutputStream将对象写入输出流。

4. 编写对象:调用writeObject方法将对象写入输出流。

反序列化过程

1. 创建ObjectInputStream使用ObjectInputStream从输入流读取对象。

2. 读取对象:调用readObject方法从输入流读取对象。如果对象包含其他可序列化的对象,则readObject方法也会调用这些对象的readObject

Processus de sérialisation

1. Implémentez l'interfaceSérialisable:

La classe doit implémenter l'interface Sérialisablepour être sérialisée.

2. Préparez l'objet :

L'objet à sérialiser doit implémenter la méthode writeObject, qui écrit les champs de l'objet dans le flux de sortie. Si l'objet contient d'autres objets sérialisables, la méthode writeObjectdoit également appeler la méthode writeObjectde ces objets. 3. Créez ObjectOutputStream: Utilisez ObjectOutputStreampour écrire des objets dans le flux de sortie. 4. Écrire un objet : Appelez la méthode writeObjectpour écrire l'objet dans le flux de sortie. Processus de désérialisation1. Créez un ObjectInputStream: Utilisez ObjectInputStreampour lire les objets du flux d'entrée. 2. Lire l'objet : Appelez la méthode readObjectpour lire l'objet à partir du flux d'entrée. Si l'objet contient d'autres objets sérialisables, la méthode readObjectappelle également la méthode readObjectde ces objets. 3. Reconstruire l'objet : Après avoir lu toutes les données du flux d'entrée, l'objet sera reconstruit à l'aide du mécanisme de réflexion. Cas pratiqueL'exemple de code suivant montre comment sérialiser et désérialiser des objets en Java :
import java.io.*; public class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public void writeObject(ObjectOutputStream out) throws IOException { out.writeObject(name); out.writeInt(age); } @Override public void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { name = (String) in.readObject(); age = in.readInt(); } public static void main(String[] args) { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("person.ser"))) { Person person = new Person("John", 30); out.writeObject(person); } catch (IOException e) { e.printStackTrace(); } try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("person.ser"))) { Person person = (Person) in.readObject(); System.out.println(person.name + ", " + person.age); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } }
Copier après la connexion

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!