可以笼统地说:如何byte[] get(offset, length)
在Java中实现大于2GB的内存映射文件的方法。
有上下文:
我正在尝试使用随机 i/o 有效读取大于 2GB 的文件。当然这个想法是使用 Java nio 和内存映射 API。
问题在于内存映射的 2GB 限制。一种解决方案是映射多个 2GB 的页面并通过偏移量进行索引。
这里有一个类似的解决方案:
这个解决方案的问题是它被设计为在我的 API 应该读取时读取字节byte[]
(所以我的 API 类似于read(offset, length)
)。
将其更改为 终极 是否get()
可行get(offset, length)
?当byte[]
我正在阅读的内容位于两页之间时会发生什么?