Rumah > Java > javaTutorial > Bagaimana untuk Menukar Objek Bersiri Java kepada Tatasusunan Byte dan Kembali?

Bagaimana untuk Menukar Objek Bersiri Java kepada Tatasusunan Byte dan Kembali?

Susan Sarandon
Lepaskan: 2025-01-03 04:52:39
asal
900 orang telah melayarinya

How to Convert Java Serializable Objects to Byte Arrays and Back?

Menukar Objek Boleh Bersiri Java kepada Tatasusunan Byte

Dalam situasi di mana anda perlu menghantar objek Java merentasi rangkaian atau menyimpannya dalam format binari, menukarnya kepada tatasusunan bait boleh menjadi penting. Mari kita pertimbangkan senario di mana kita mempunyai AppMessage kelas boleh bersiri. Untuk menghantar contoh AppMessage melalui soket ke mesin lain dan membina semulanya daripada bait yang diterima, kita boleh mengikuti langkah berikut:

Pensiran: Menukar Objek kepada Array Bait

  1. Sediakan ByteArrayOutputStream: Cipta ByteArrayOutputStream untuk berfungsi sebagai storan sementara untuk objek bersiri.
  2. ObjectOutputStream: Gunakan ObjectOutputStream untuk menulis objek ke dalam ByteArrayOutputStream.
  3. Flush dan Read Bytes: Flush Objectam toOutputStream memastikan semua data ditulis kepada penimbal bait dan dapatkan semula tatasusunan bait daripada ByteArrayOutputStream.

Coretan kod untuk proses ini:

static byte[] serialize(final Object obj) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    try (ObjectOutputStream out = new ObjectOutputStream(bos)) {
        out.writeObject(obj);
        out.flush();
        return bos.toByteArray();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
Salin selepas log masuk

Deserialisasi: Membina Semula Objek daripada Tatasusunan Bait

  1. Buat a ByteArrayInputStream: Tukar tatasusunan bait kembali kepada aliran input menggunakan ByteArrayInputStream.
  2. ObjectInputStream: Cipta ObjectInputStream daripada ByteArrayInputStream untuk membaca data objek.
  3. readObject(): Gunakan kaedah readObject() untuk membina semula objek asal daripada strim bait.
Coretan kod yang sepadan:

static Object deserialize(byte[] bytes) {
    ByteArrayInputStream bis = new ByteArrayInputStream(bytes);

    try (ObjectInput in = new ObjectInputStream(bis)) {
        return in.readObject();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
Salin selepas log masuk
Dengan adanya kaedah ini, anda boleh menghantar boleh bersiri dengan cekap objek, seperti contoh AppMessage, melalui rangkaian dan bina semula pada bahagian penerima.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek Bersiri Java kepada Tatasusunan Byte dan Kembali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan