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!