Maison  >  Article  >  Java  >  Quel est le processus de sérialisation et de désérialisation Java ?

Quel est le processus de sérialisation et de désérialisation Java ?

王林
王林original
2024-04-15 18:06:011140parcourir

La sérialisation et la désérialisation Java impliquent les étapes suivantes : Écriture d'une classe qui implémente l'interface Serialisable dans un flux (sérialisation). Lire (désérialiser) l'objet du flux.

Quel est le processus de sérialisation et de désérialisation Java ?

Le processus de sérialisation et de désérialisation Java

Sérialisation

  1. Écrivez une classe qui implémente l'interface Sérialisable. Serializable 接口的类。
  2. 创建一个 ObjectOutputStream 对象,并将其与一个文件或字节流关联。
  3. 使用 ObjectOutputStream.writeObject() 方法将对象写入流中。

示例代码:

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class Employee implements Serializable {
    private String name;
    private int age;

    // 省略getter和setter方法

    public static void main(String[] args) {
        Employee employee = new Employee("John", 30);
        
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"))) {
            out.writeObject(employee);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

反序列化

  1. 创建一个 ObjectInputStream 对象,并将其与一个文件或字节流关联。
  2. 使用 ObjectInputStream.readObject() 方法读取对象。

示例代码:

import java.io.FileInputStream;
import java.io.ObjectInputStream;

public class DeserializeEmployee {
    public static void main(String[] args) {
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"))) {
            Employee employee = (Employee) in.readObject();
            System.out.println(employee.getName() + ", " + employee.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项:

  • 只有实现了 Serializable
  • Créez un objet ObjectOutputStream et associez-le à un fichier ou un flux d'octets.
  • Utilisez la méthode ObjectOutputStream.writeObject() pour écrire des objets dans le flux.
  • Exemple de code :
rrreee🎜🎜Désérialisation🎜🎜🎜🎜Crée un objet ObjectInputStream et l'associe à un fichier ou un flux d'octets. 🎜🎜Utilisez la méthode ObjectInputStream.readObject() pour lire l'objet. 🎜🎜🎜Exemple de code : 🎜🎜rrreee🎜🎜Remarques : 🎜🎜
    🎜Seules les classes qui implémentent l'interface Sérialisable peuvent être sérialisées. 🎜🎜L'ordre de sérialisation et de désérialisation doit être cohérent. 🎜🎜La structure d'une classe ne peut pas changer entre la sérialisation et la désérialisation. 🎜🎜La sérialisation des objets peut être lente, en particulier pour les objets volumineux. 🎜🎜

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