Heim >Java >javaLernprogramm >Wie läuft die Objektserialisierung in Java ab?
In Java wandelt die Objektserialisierung Objekte in Byteströme um und die Deserialisierung stellt Byteströme in Objekte wieder her. Die Serialisierung erfordert die Implementierung der Serializable-Schnittstelle, die Vorbereitung des Objekts und die Verwendung von ObjectOutputStream zum Schreiben von Daten. Bei der Deserialisierung wird ObjectInputStream zum Lesen von Daten und zum Rekonstruieren des Objekts verwendet. Der Code serialisiert beispielsweise ein Personenobjekt mit Namens- und Alterseigenschaften und deserialisiert es aus einer Datei, um die Informationen auszugeben.
Serialisierung ist ein Prozess, bei dem Objekte in einen Bytestrom umgewandelt und in einer Datei oder im Netzwerk gespeichert werden. Deserialisierung ist der umgekehrte Prozess der Rückkonvertierung eines gespeicherten Bytestroms in das ursprüngliche Objekt. Die Kernschnittstelle für die Objektserialisierung in Java ist Serializable
. Serializable
。
1. 实现 Serializable
接口: 类必须实现 Serializable
接口才能进行序列化。
2. 准备对象: 要序列化的对象必须实现 writeObject
方法,该方法将对象的字段写入输出流。如果对象包含其他可序列化的对象,则 writeObject
方法也需要调用这些对象的 writeObject
方法。
3. 创建 ObjectOutputStream
: 使用 ObjectOutputStream
将对象写入输出流。
4. 编写对象: 调用 writeObject
方法将对象写入输出流。
1. 创建 ObjectInputStream
: 使用 ObjectInputStream
从输入流读取对象。
2. 读取对象: 调用 readObject
方法从输入流读取对象。如果对象包含其他可序列化的对象,则 readObject
方法也会调用这些对象的 readObject
1. Implementieren Sie die Schnittstelle Serializable
:
Serializable
implementieren, die serialisiert werden soll.
2. Bereiten Sie das Objekt vor:
Das zu serialisierende Objekt muss die MethodewriteObject
implementieren, die die Felder des Objekts in den Ausgabestream schreibt. Wenn das Objekt andere serialisierbare Objekte enthält, muss die Methode writeObject
auch die Methode writeObject
dieser Objekte aufrufen. 🎜🎜🎜3. Erstellen Sie ObjectOutputStream
: 🎜 Verwenden Sie ObjectOutputStream
, um Objekte in den Ausgabestream zu schreiben. 🎜🎜🎜4. Objekt schreiben: 🎜 Rufen Sie die Methode writeObject
auf, um das Objekt in den Ausgabestream zu schreiben. 🎜🎜Deserialisierungsprozess🎜🎜🎜1. Erstellen Sie ObjectInputStream
: 🎜 Verwenden Sie ObjectInputStream
, um Objekte aus dem Eingabestream zu lesen. 🎜🎜🎜2. Lesen Sie das Objekt: 🎜 Rufen Sie die Methode readObject
auf, um das Objekt aus dem Eingabestream zu lesen. Wenn das Objekt andere serialisierbare Objekte enthält, ruft die Methode readObject
auch die Methode readObject
dieser Objekte auf. 🎜🎜🎜3. Rekonstruieren Sie das Objekt: 🎜 Nach dem Lesen aller Daten aus dem Eingabestream wird das Objekt mithilfe des Reflexionsmechanismus rekonstruiert. 🎜🎜Praktischer Fall🎜🎜Das folgende Codebeispiel zeigt, wie Objekte in Java serialisiert und deserialisiert werden: 🎜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(); } } }
Das obige ist der detaillierte Inhalt vonWie läuft die Objektserialisierung in Java ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!