ObjectOutputStream を使用して、シリアル化されたオブジェクトのファイルを作成しています。次に、ObjectInputStream を readObject() メソッドで使用して、ファイルからオブジェクトを取得します。
初めてでもうまくいきます。つまり、ファイルが存在せず、それを開いて任意の数のオブジェクトを追加すると、ObjectInputStream オブジェクトを開いてすべてのオブジェクトにアクセスできます。
ただし、後で同じファイルを (append オプションを使用して) 開き、さらにオブジェクトを追加すると、ObjectInputStream オブジェクトは java.io.StreamCorruptedException: "invalid type code: AC" エラーを受け取り、新しいオブジェクトを開始する必要があります。
他の誰かがこれに遭遇しましたか?Deitel の本からいくつかの基本的な教科書の例に戻っても、同じエラーが発生します。
編集:これを見つけました-シリアル化されたストリームを閉じて追加モードで再度開いた後は、その末尾に追加することはできません。書き込みは機能しているように見えますが、後でファイルを読み取ろうとすると、java.io.StreamCorruptedException が発生します。「http://mindprod.com/jgloss/gotchas.html#SERIALIZATION」で