我正在使用 RandomAccessFile 打开大文件(~ 200 MB),然后为它获取 Channel。我正在尝试将一些数据映射到 MappedByteBuffer,但出现异常:
通道未打开写入 - 无法将文件扩展为所需大小。
我不明白,为什么 map 方法试图写入文件 - 映射区域小于文件大小!为什么在这种情况下尝试扩展文件?
更新
问题解决了,原来我认为第三个参数表示文件中的索引位置,它是缓冲区的长度。
我正在使用 RandomAccessFile 打开大文件(~ 200 MB),然后为它获取 Channel。我正在尝试将一些数据映射到 MappedByteBuffer,但出现异常:
通道未打开写入 - 无法将文件扩展为所需大小。
我不明白,为什么 map 方法试图写入文件 - 映射区域小于文件大小!为什么在这种情况下尝试扩展文件?
更新
问题解决了,原来我认为第三个参数表示文件中的索引位置,它是缓冲区的长度。