Maison  >  Article  >  Java  >  Comment utiliser la fonction de désérialisation pour implémenter la sérialisation et la désérialisation d'objets en Java

Comment utiliser la fonction de désérialisation pour implémenter la sérialisation et la désérialisation d'objets en Java

WBOY
WBOYoriginal
2023-10-20 15:31:46907parcourir

Comment utiliser la fonction de désérialisation pour implémenter la sérialisation et la désérialisation dobjets en Java

Comment utiliser la fonction de désérialisation pour implémenter la sérialisation et la désérialisation d'objets en Java

La sérialisation est le processus de conversion d'un objet en un flux d'octets qui peut être utilisé dans la transmission ou le stockage réseau, tandis que la désérialisation est le processus de reconvertir le flux d'octets en un objet. Java fournit des mécanismes de sérialisation et de désérialisation afin que les développeurs puissent facilement stocker et transmettre des objets. Cet article explique comment utiliser la fonction de désérialisation en Java pour sérialiser et désérialiser des objets, et donne des exemples de code spécifiques.

  1. Implémentez l'interface sérialisable
    Pour implémenter la sérialisation et la désérialisation des objets, vous devez d'abord vous assurer que la classe à laquelle appartient l'objet sérialisé implémente l'interface sérialisable. Cette interface n'a aucune méthode, elle sert juste d'identifiant pour indiquer à Java que cette classe peut être sérialisée.

Exemple de code :

import java.io.Serializable;

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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter and setter
}
  1. Sérialisation d'objets
    Pour sérialiser un objet dans un flux d'octets, vous pouvez utiliser la classe ObjectOutputStream. Tout d’abord, vous devez créer un objet FileOutputStream, le transmettre en tant que paramètre au constructeur d’ObjectOutputStream, puis utiliser la méthode writeObject d’ObjectOutputStream pour écrire l’objet dans le fichier.

Exemple de code :

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

public class SerializationDemo {
    public static void main(String[] args) {
        Person person = new Person("张三", 25);

        try {
            FileOutputStream fileOut = new FileOutputStream("person.ser");
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            out.writeObject(person);
            out.close();
            fileOut.close();
            System.out.println("对象已被序列化并保存在person.ser文件中");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. Désérialisation d'objets
    Pour désérialiser un flux d'octets en objet, vous pouvez utiliser la classe ObjectInputStream. Tout d'abord, vous devez créer un objet FileInputStream, le transmettre en tant que paramètre au constructeur d'ObjectInputStream, puis utiliser la méthode readObject d'ObjectInputStream pour lire le flux d'octets dans le fichier en tant qu'objet.

Exemple de code :

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

public class DeserializationDemo {
    public static void main(String[] args) {
        Person person = null;

        try {
            FileInputStream fileIn = new FileInputStream("person.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            person = (Person) in.readObject();
            in.close();
            fileIn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        if (person != null) {
            System.out.println("对象已经从person.ser文件中反序列化:" + person.getName() + "," + person.getAge());
        }
    }
}

Les méthodes et exemples de code ci-dessus permettent d'utiliser la fonction de désérialisation pour réaliser la sérialisation et la désérialisation d'objets en Java. En implémentant l'interface Serialisable et en utilisant les classes ObjectInputStream et ObjectOutputStream, nous pouvons facilement sérialiser des objets en flux d'octets, ou désérialiser des flux d'octets en objets. Ce mécanisme a une grande valeur d'application à la fois dans la transmission réseau et dans le stockage de fichiers.

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