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 est Sé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'interface Sé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é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!