Rumah > Java > javaTutorial > teks badan

Bagaimanakah aliran Java I/O mengendalikan objek bersiri?

WBOY
Lepaskan: 2024-04-13 13:18:01
asal
989 orang telah melayarinya

Strim I/O Java boleh mensiri dan menyahsiri objek untuk penghantaran atau penyimpanan Langkah-langkah khusus adalah seperti berikut: membuat objek melaksanakan antara muka Serializable; gunakan ObjectInputStream untuk menyahsiri aliran bait ke dalam objek.

Java I/O流如何处理序列化对象?

Java I/O Streaming Objek Bersiri

Pengenalan
Serialization ialah proses menukar objek kepada aliran bait supaya ia boleh dihantar melalui rangkaian atau peranti storan. Penyahserialisasian ialah proses terbalik, membina semula objek daripada aliran bait. Di Java, pensirilan dan penyahserikan dilakukan melalui aliran I/O.

Serializing Objects
Untuk mensirikan objek, kita perlu:

  1. Membuat objek melaksanakan antara muka Serializable.
  2. Serializable 接口。
  3. 使用 ObjectOutputStream 将对象写入到输出流中。
// 序列化一个对象
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser"));
oos.writeObject(object);
oos.close();
Salin selepas log masuk

反序列化对象
要反序列化一个对象,我们需要:

  1. 从输入流中读取字节流。
  2. 使用 ObjectInputStream 将字节流反序列化成对象。
// 反序列化一个对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser"));
Object object = ois.readObject();
ois.close();
Salin selepas log masuk

实战案例
让我们创建一个 Student 类,使其可序列化并演示序列化和反序列化过程:

import java.io.Serializable;

public class Student implements Serializable {
    private int id;
    private String name;

    // 构造函数和 getter/setter 略...
}

public class Main {
    public static void main(String[] args) {
        // 创建一个 Student 对象
        Student student = new Student(1, "John Doe");

        // 序列化该对象
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser"))) {
            oos.writeObject(student);
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 反序列化该对象
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser"))) {
            Student deserializedStudent = (Student) ois.readObject();
            System.out.println(deserializedStudent.getId() + " " + deserializedStudent.getName());
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

运行此代码将输出:1 John DoeGunakan ObjectOutputStream untuk menulis objek ke strim output. rrreee

🎜Deserialisasi Objek🎜🎜Untuk menyahsiri objek kita perlu: 🎜🎜🎜Membaca strim bait daripada strim input. 🎜Gunakan ObjectInputStream untuk menyahsiri strim bait menjadi objek. rrreee🎜🎜Kes praktikal🎜🎜Mari kita buat kelas Pelajar, jadikan ia boleh bersiri dan tunjukkan proses bersiri dan penyahsirilan:🎜rrreee🎜Menjalankan kod ini akan mengeluarkan: 1 John Doe, yang menunjukkan bahawa objek telah berjaya disiri dan dinyahsiri. 🎜

Atas ialah kandungan terperinci Bagaimanakah aliran Java I/O mengendalikan objek bersiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan