大きなファイルの一部をループで読み取りたい。ファイル全体を読み取る必要がありましたが、うまくいきませんでした。ファイルが大きすぎるという例外が発生していました。コードを以下のリストに変更しました。以下のコードは、最初のチャンクのみを読み取ります。次のチャンクに移動するには、何を変更する必要がありますか。
final FileInputStream fis = new FileInputStream(f);
final FileChannel fc = fis.getChannel();
final long sizeRead = fc.size() < defaultReadBufferSize ? fc.size() : defaultReadBufferSize;
final MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sizeRead);
while (bb.hasRemaining()) {
final CharBuffer cb = decoder.decode(bb);
this.search(f, cb);
System.out.println("============>" + cb.length());
System.out.println("============>" + bb.hasRemaining());
}
fc.close();