ObjectOutputStream/ObjectInputStream を内部クラスにすることは可能ですか? OK を書き込んで、作成されたファイルを調べることができますが、ObjectInputStream を使用して読み戻そうとすると、オブジェクト o = oos.readObject(); を読み込もうとしているだけで EOFException が発生します。
- 同じ File オブジェクトを使用して両方のストリームを開くので、それは問題ではありません。
- 内部クラスの性質とは無関係のようです - public int だけを持つクラスは、より複雑なクラスと同じように失敗します。
次に進み、通常のクラスを作成し、送信者クラスでインスタンス化する必要がありますが、可能かどうか、可能でない場合は理由がわからないまま立ち去るのは嫌いです。
更新: 問題の原因となった関連する問題:
A. ObjectOutputStream と追加で書き込まれたファイルを再度開くことはできません。2 番目のヘッダーが書き込まれ、ファイルが破損します。
B. ByteOutputStream を使用してハッシュ ダイジェストを実行するために HashMap をシリアル化することは機能しません。これは、ObjectOutputStream ファイルから HashMap を読み戻すときに、ペアの順序が異なるため、ByteOutputStream から異なる byte[] を取得する可能性が非常に高いためです。内容は同じですが、byte[] (およびハッシュ ダイジェスト) は異なります。
これが誰かの時間を節約するのに役立つことを願っています。