ホームページ > Java > &#&チュートリアル > 既存の ObjectOutputStream にオブジェクトを追加するにはどうすればよいですか?

既存の ObjectOutputStream にオブジェクトを追加するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-15 14:15:32
オリジナル
820 人が閲覧しました

How Can I Append Objects to an Existing ObjectOutputStream?

ObjectOutputStream へのオブジェクトの追加

ObjectOutputStream はオブジェクトをシリアル化する便利な方法を提供しますが、既存のストリームへの追加はサポートしていません。この制限が発生する一般的なシナリオは、新しいオブジェクトが作成されるたびに追加される、ファイル内のオブジェクトのリストを維持しようとする場合です。

この課題を克服するには、カスタム ソリューションが必要です。 1 つの方法は、ObjectOutputStream をサブクラス化し、writeStreamHeader メソッドをオーバーライドすることです。このメソッドは、シリアル化されるオブジェクト タイプに関する情報を含むストリーム ヘッダーを書き込む役割を果たします。このメソッドをオーバーライドすると、ヘッダーを書き込まないストリームを作成でき、既存のファイルにオブジェクトを追加できるようになります。

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

}
ログイン後にコピー

このクラスを使用するには、履歴ファイルが存在するかどうかを確認してください。存在する場合は、AppendingObjectOutputStream をインスタンス化してオブジェクトを追加します。それ以外の場合は、標準の ObjectOutputStream をインスタンス化して、ヘッダー付きの新しいファイルを作成します。

writeStreamHeader メソッドをオーバーライドすることで、AppendingObjectOutputStream を使用して既存のファイルにオブジェクトを追加できるようになり、オブジェクトの永続的なリストを維持する方法が提供されます。既存のデータを上書きします。

以上が既存の ObjectOutputStream にオブジェクトを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート