【发布时间】:2012-02-03 01:30:43
【问题描述】:
我了解如何创建内存映射文件,但我的问题是让我们在以下行中说:
FileChannel roChannel = new RandomAccessFile(file, "r").getChannel();
ByteBuffer roBuf = roChannel.map(FileChannel.MapMode.READ_ONLY, 0, SIZE);
例如,我将 SIZE 设置为 2MB,这是否意味着它只会加载 2MB 的文件,还是会在文件中进一步读取并在我消耗字节时更新缓冲区?
【问题讨论】:
-
只有映射的部分可以通过该缓冲区访问。把它想象成一个覆盖整个文件的窗口,只能读取(写入)可见区域
-
@bestsss:您应该将其添加为答案。
-
@Jonas, ...不喜欢一句话的答案。答案也很明显。提问者可以随时自行回复并选择它。
标签: java nio memory-mapped-files