Heim  >  Artikel  >  Java  >  Was ist Serialisierung in Java?

Was ist Serialisierung in Java?

(*-*)浩
(*-*)浩Original
2019-11-13 13:36:413239Durchsuche

Was ist Serialisierung in Java?

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:

Was ist Serialisierung in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn