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

Bagaimanakah Saya Boleh Menambahkan Objek pada ObjectOutputStream Sedia Ada?

Linda Hamilton
Linda Hamiltonasal
2024-12-15 14:15:32822semak imbas

How Can I Append Objects to an Existing ObjectOutputStream?

Menambahkan Objek pada ObjectOutputStream

Walaupun ObjectOutputStream menyediakan cara yang mudah untuk menyerikan objek, ia tidak menyokong penambahan pada strim sedia ada. Senario biasa di mana had ini timbul ialah apabila cuba mengekalkan senarai objek dalam fail, dengan objek baharu ditambah semasa ia dibuat.

Untuk mengatasi cabaran ini, penyelesaian tersuai diperlukan. Satu pendekatan ialah subkelas ObjectOutputStream dan mengatasi kaedah writeStreamHeader. Kaedah ini bertanggungjawab untuk menulis pengepala strim, yang mengandungi maklumat tentang jenis objek yang disiri. Dengan mengatasi kaedah ini, kami boleh mencipta strim yang tidak menulis pengepala, membenarkan kami menambahkan objek pada fail sedia ada.

Berikut ialah contoh 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:
    reset();
  }

}

Untuk menggunakan kelas ini, semak sama ada fail sejarah wujud. Jika ia berlaku, nyatakan AppendingObjectOutputStream untuk menambah objek. Jika tidak, nyatakan ObjectOutputStream standard untuk mencipta fail baharu dengan pengepala.

Dengan mengatasi kaedah writeStreamHeader, AppendingObjectOutputStream membenarkan kami menambah objek pada fail sedia ada, menyediakan cara untuk mengekalkan senarai objek yang berterusan tanpa menimpa data sedia ada.

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