我想循环读取大文件的一部分。我不得不阅读整个文件,但这没有用,我收到文件太大的异常。我将代码更改为下面的清单。下面的代码只读取第一个块。我需要更改什么才能移动到下一个块。
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();