Heim >Java >javaLernprogramm >Wie kann ich Objekte an eine vorhandene Objektdatei in Java anhängen?

Wie kann ich Objekte an eine vorhandene Objektdatei in Java anhängen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 18:43:12760Durchsuche

How Can I Append Objects to an Existing Object File in Java?

Anhängen an eine vorhandene Objektdatei

In Java können Sie mit ObjectOutputStream Objekte serialisieren und in eine Datei schreiben. Allerdings unterstützt dieser Stream standardmäßig nicht das Anhängen neuer Objekte an eine vorhandene Datei. In diesem Thema wird eine Lösung zum Anhängen von Daten an einen vorhandenen ObjectOutputStream untersucht.

Um an eine vorhandene Datei anzuhängen, muss die writeStreamHeader()-Methode von ObjectOutputStream überschrieben werden, um das Schreiben eines Headers zu vermeiden. Hier ist eine benutzerdefinierte AppendingObjectOutputStream-Klasse, die Folgendes tut:

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();
  }

}

Um diese Klasse zum Anhängen von Objekten an eine vorhandene Datei zu verwenden, prüfen Sie, ob die Datei vorhanden ist, bevor Sie den Stream erstellen:

FileOutputStream fos = null;
ObjectOutputStream out = null;

File file = new File(preferences.getAppDataLocation() + "history");

if (file.exists()) {
  // Append to existing file
  fos = new FileOutputStream(file, true);
  out = new AppendingObjectOutputStream(fos);
} else {
  // Create new file with header
  fos = new FileOutputStream(file);
  out = new ObjectOutputStream(fos);
}

// Append objects to the file
out.writeObject(new Stuff(stuff));
out.close();

Für Um die angehängten Objekte zu lesen, verwenden Sie wie gewohnt einen ObjectInputStream. Die StreamCorruptedException-Ausnahme würde beim Lesen von Objekten aus der Datei nicht mehr auftreten.

Das obige ist der detaillierte Inhalt vonWie kann ich Objekte an eine vorhandene Objektdatei in Java anhängen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn