Serialisierung: Bezieht sich auf die Java-Objektdaten im Heapspeicher, die auf irgendeine Weise in einer Festplattendatei gespeichert oder an andere Netzwerkknoten weitergeleitet werden (Netzwerkübertragung). Dieser Vorgang wird Serialisierung genannt und bezieht sich normalerweise auf den Vorgang der Konvertierung einer Datenstruktur oder eines Objekts in eine Binärdatei. (Empfohlenes Lernen: Java-Kurs )
Konvertieren Sie das Objekt zur Speicherung oder Netzwerkübertragung in Binärdatei.
Die Rolle der Serialisierung
① Wenn Sie Objekte im Speicher in einer Datei oder Datenbank speichern möchten;
② Wenn Sie Sockets verwenden möchten Beim Übertragen von Objekten über das Netzwerk;
③ Wenn Objekte über RMI übertragen werden sollen
Einige Anwendungsszenarien erfordern die Konvertierung von Objekten in Binärdateien, und die Serialisierung stellt sicher, dass sie erfolgreich gelesen werden können.
Java-Serialisierungsimplementierung
Um die Serialisierung von Objekten zu erreichen, besteht die direkteste Operation darin, die serialisierbare Schnittstelle zu implementieren
Verwenden Sie Objekte in den IO-Stream-Streams kann Serialisierungsvorgänge implementieren, Objekte in Dateien speichern und sie dann auslesen.
Erstellen Sie zunächst ein Objekt und implementieren Sie die serialisierbare Schnittstelle:
import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }
Verwenden Sie den Objektstrom, um eine Toolklasse zum Speichern und Lesen von Objekten zu schreiben:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeUtil { // 保存对象,序列化 public static void saveObject(Object object) throws Exception { ObjectOutputStream out = null; FileOutputStream fout = null; try { fout = new FileOutputStream("D:/1.txt"); out = new ObjectOutputStream(fout); out.writeObject(object); } finally { fout.close(); out.close(); } } // 读取对象,反序列化 public static Object readObject() throws Exception { ObjectInputStream in = null; FileInputStream fin = null; try { fin = new FileInputStream("D:/1.txt"); in = new ObjectInputStream(fin); Object object = in.readObject(); return object; } finally { fin.close(); in.close(); } } }
Test:
public class Main { public static void main(String[] args) { User user = new User(); user.setName("旭旭宝宝"); user.setAge(33); // 保存 try { SerializeUtil.saveObject(user); } catch (Exception e) { System.out.println("保存时异常:" + e.getMessage()); } // 读取 User userObject; try { userObject = (User) SerializeUtil.readObject(); System.out.println(userObject); } catch (Exception e) { System.out.println("读取时异常:" + e.getMessage()); } } }
Testergebnis:
Das obige ist der detaillierte Inhalt vonWas ist Serialisierung in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!