我想在循環中讀取大文件的部分。我不得不只讀整個文件,但沒有奏效,我得到一個例外,該文件太大。我將我的代碼更改爲下面的列表。下面的代碼只能在第一個塊中讀取。我需要改變以轉移到下一個塊。Java NIO/MappedByteBuffer和映射,以塊爲單位讀取文件的一部分
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();
您有大約44個問題沒有被接受的答案。也許你可以試着提出可能會有合理答案的問題或跟蹤答案,以便他們能夠被接受。 –
你能否給我一個沒有被接受的答案的例子問題?我的所有問題都有答案。 –
如果你回顧你的問題http://stackoverflow.com/users/10522/berlin-brown以黃色標記的問題有一個被接受的答案,白色的問題不會。第3-12頁有沒有被接受的答案的問題。 –