在Java中,是否有可能对巨大文件(多个GB)进行内存映射?
这个FileChannel
的方法看起来很有前途:
MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)
在position
和size
中,两者都允许64位的值 - 到目前为止还好。
然而,MappedByteBuffer
只提供32位位置的方法(get(int index)
, position(int newPosition)
等),这似乎意味着我不能映射大于2GB的文件。
我该如何解决这个限制?