Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menambahkan Objek pada ObjectOutputStream Sedia Ada di Java?

Bagaimanakah Saya Boleh Menambahkan Objek pada ObjectOutputStream Sedia Ada di Java?

Mary-Kate Olsen
Lepaskan: 2024-12-20 09:06:13
asal
610 orang telah melayarinya

How Can I Append Objects to an Existing ObjectOutputStream in Java?

Melampirkan pada ObjectOutputStream: Penyelesaian

Di Java, menambahkan pada ObjectOutputStream tidak disokong secara semula jadi. Percubaan untuk menambah pada fail sedia ada menggunakan ObjectOutputStream standard akan menghasilkan StreamCorruptedException apabila membaca.

Untuk mengatasi had ini, seseorang boleh mensubkelaskan ObjectOutputStream dan mengatasi kaedah writeStreamHeadernya. WriteStreamHeader yang diubah suai seharusnya tidak menulis pengepala tetapi sebaliknya menetapkan semula strim semasa menulis objek awal.

Kod berikut menunjukkan penciptaan kelas AppendingObjectOutputStream:

public class AppendingObjectOutputStream extends ObjectOutputStream {

  public AppendingObjectOutputStream(OutputStream out) throws IOException {
    super(out);
  }

  @Override
  protected void writeStreamHeader() throws IOException {
    // do not write a header, but reset:
    this.reset();
  }

}
Salin selepas log masuk

Untuk menggunakan kelas ini, tentukan sama ada fail sejarah sasaran wujud. Jika ia berlaku, nyatakan AppendingObjectOutputStream untuk menambah data tanpa menulis pengepala. Jika fail itu tidak wujud, nyatakan ObjectOutputStream standard untuk menulis pengepala.

// Check if history file exists
if (fileExists) {
  // Appendable stream
  ObjectOutputStream out = new AppendingObjectOutputStream(new FileOutputStream(filePath, true));
} else {
  // Standard stream
  ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath));
}
Salin selepas log masuk

Dengan menggunakan AppendingObjectOutputStream, seseorang boleh berjaya menambahkan objek pada fail sejarah sedia ada, memastikan semua objek bertulis boleh dibaca mengikut susunan yang betul.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambahkan Objek pada ObjectOutputStream Sedia Ada di Java?. 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