RandomAccessFilesを使用するJavaのFileChannelクラスを使用してファイルを作成しました。ファイル内のさまざまな場所にオブジェクトを書き込みました。オブジェクトのサイズは可変でしたが、すべて同じクラスでした。私は次のアイデアを使用してオブジェクトを作成しました:
ByteArrayOutputStream bos= new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(r);
byte[] recordBytes= bos.toByteArray();
ByteBuffer rbb= ByteBuffer.wrap(recordBytes);
while(rbb.hasRemaining()) {
fileChannel.write(rbb);
}
今、私はそのようなファイルから読みたいです。読み取るバイト数を指定する必要はありません。オブジェクト入力ストリームを使用してオブジェクトを直接読み取れるようにしたい。これを達成する方法は?
ファイル内のさまざまな位置に書き込む必要があるため、ランダムアクセスファイルを使用する必要があります。また、オブジェクトが書き込まれた場所を別のデータ構造で記録しています。