我只想确保MappedByteBuffer的最大大小为Integer.MAX_VALUE,并且无法创建大小为0x80000000的缓冲区。尽管此范围内的索引可以用“int”类型的值表示,但“java.nio”的规范不允许使用此大小,对吧?谢谢!
答案 0 :(得分:1)
FileChannel.map()的文档明确指出映射区域的大小不能大于Integer.MAX_VALUE。该方法(可能)需要一个长参数来与其他文件API调用保持一致或未来扩展,但实际上ByteBuffer索引通常被定义为整数。
您应该能够将开始的区域映射到该值以外,因此原则上您可以通过具有多个映射部分来映射更大的文件。