理解できない奇妙な OptionalDataException を扱っています。
入ってくるオブジェクトがあります。これらのオブジェクトは、を装飾してそのメソッドOutputObjectStreamを呼び出すことによってそれらを書き込むクラスによってディスクに保存されます。writeUnshared定期的に、10000 オブジェクトごとにflushand を呼び出しますreset。最後に、ストリームを閉じます。
このようにして、シリアル化されたオブジェクトのみを含む少数のファイルを作成します。
つまりね。これらのファイルがすべて書き込まれた後、ペアを取り、マージソートを試みます。この時点では、ファイルのサイズは変更されていません (予想どおり)。
これを行うには、まず 2 つのストリームを開きreadObject、それぞれを呼び出します。
ただし、このreadObject(各ストリームの最初のもの)への呼び出しはOptionalDataException、毎回 をスローしeof = false, length = 4ます。これは、私が理解しているように、プリミティブ データ型を読み取っていること、または取得していない何かが起こっていることを示しています。