1

我只想确保 MappedByteBuffer 的最大大小是 Integer.MAX_VALUE 并且无法创建大小为 0x80000000 的缓冲区。虽然这个范围内的索引可以用“int”类型的值来表示,但是这个大小是“java.nio”的规范不允许的,对吧?谢谢!

4

1 回答 1

1

FileChannel.map() 的文档明确指出映射区域的大小不能大于 Integer.MAX_VALUE。该方法(可能)采用长参数以与其他文件 API 调用保持一致或用于未来扩展,但实际上 ByteBuffer 索引通常被定义为整数。

但是,您应该能够映射超出该值的区域因此原则上您可以通过具有多个映射部分来映射更大的文件。

于 2012-12-07T22:48:37.853 回答