Maison  >  Article  >  Java  >  Quel est le processus de sérialisation d’objets en Java ?

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

WBOY
WBOYoriginal
2024-04-12 11:30:02518parcourir

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 d’objets 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 est Sé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'interface Sérialisable :

La classe doit implémenter l'interface Sérialisable pour ê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 writeObject doit également appeler la méthode writeObject de ces objets. 🎜🎜🎜3. Créez ObjectOutputStream : 🎜 Utilisez ObjectOutputStream pour écrire des objets dans le flux de sortie. 🎜🎜🎜4. Écrire un objet : 🎜 Appelez la méthode writeObject pour écrire l'objet dans le flux de sortie. 🎜🎜Processus de désérialisation🎜🎜🎜1. Créez un ObjectInputStream : 🎜 Utilisez ObjectInputStream pour lire les objets du flux d'entrée. 🎜🎜🎜2. Lire l'objet : 🎜 Appelez la méthode readObject pour lire l'objet à partir du flux d'entrée. Si l'objet contient d'autres objets sérialisables, la méthode readObject appelle également la méthode readObject de 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 pratique🎜🎜L'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();
        }
    }
}

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