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.
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
1. Implémentez l'interfaceSérialisable
:
Sérialisable
pour être sérialisée.
2. Préparez l'objet :
L'objet à sérialiser doit implémenter la méthodewriteObject
, 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érialisation1. 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 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(); } } }
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!