Rumah  >  Artikel  >  Java  >  Apakah proses siri objek dalam Java?

Apakah proses siri objek dalam Java?

WBOY
WBOYasal
2024-04-12 11:30:02525semak imbas

Dalam Java, pensirilan objek menukarkan objek kepada strim bait, dan penyahsiran memulihkan strim bait menjadi objek. Sirialisasi memerlukan pelaksanaan antara muka Serializable, menyediakan objek dan menggunakan ObjectOutputStream untuk menulis data menggunakan ObjectInputStream untuk membaca data dan membina semula objek. Contohnya, kod itu mensirikan objek Orang dengan sifat nama dan umur dan menyahsirikannya daripada fail untuk mencetak maklumat.

Apakah proses siri objek dalam Java?

Proses Pensirian Objek dalam Java

Pengenalan

Pensirian ialah proses menukar objek kepada aliran bait dan menyimpannya dalam fail atau pada rangkaian. Penyahserialisasian ialah proses terbalik untuk menukar aliran bait yang disimpan kembali ke objek asal. Antara muka teras untuk penyiaran objek dalam Java ialah Serializable. Serializable

序列化过程

1. 实现 Serializable 接口: 类必须实现 Serializable 接口才能进行序列化。

2. 准备对象: 要序列化的对象必须实现 writeObject 方法,该方法将对象的字段写入输出流。如果对象包含其他可序列化的对象,则 writeObject 方法也需要调用这些对象的 writeObject 方法。

3. 创建 ObjectOutputStream 使用 ObjectOutputStream 将对象写入输出流。

4. 编写对象: 调用 writeObject 方法将对象写入输出流。

反序列化过程

1. 创建 ObjectInputStream 使用 ObjectInputStream 从输入流读取对象。

2. 读取对象: 调用 readObject 方法从输入流读取对象。如果对象包含其他可序列化的对象,则 readObject 方法也会调用这些对象的 readObject

Proses siri

1 Laksanakan antara muka Serializable:

Kelas mesti melaksanakan antara muka Serializable untuk diserikan.

2. Sediakan objek:

Objek yang akan disiri mesti melaksanakan kaedah writeObject, yang menulis medan objek ke aliran output. Jika objek mengandungi objek boleh bersiri lain, kaedah writeObject perlu memanggil kaedah writeObject objek tersebut juga. 🎜🎜🎜3 Cipta ObjectOutputStream: 🎜 Gunakan ObjectOutputStream untuk menulis objek ke strim output. 🎜🎜🎜4. Tulis objek: 🎜 Panggil kaedah writeObject untuk menulis objek ke aliran output. 🎜🎜Proses penyahserialisasian🎜🎜🎜1 Cipta ObjectInputStream: 🎜 Gunakan ObjectInputStream untuk membaca objek daripada aliran input. 🎜🎜🎜2 Baca objek: 🎜 Panggil kaedah readObject untuk membaca objek daripada aliran input. Jika objek mengandungi objek boleh bersiri lain, kaedah readObject turut memanggil kaedah readObject objek tersebut. 🎜🎜🎜3. Bina semula objek: 🎜 Selepas membaca semua data daripada aliran input, objek akan dibina semula menggunakan mekanisme pantulan. 🎜🎜Kes Praktikal🎜🎜Contoh kod berikut menunjukkan cara mensiri dan menyahsiri objek dalam 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();
        }
    }
}

Atas ialah kandungan terperinci Apakah proses siri objek dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn