我的Java应用程序使用内存映射文件(MappedByteBuffer,FileChannel和RandomAccessFile)处理大型二进制数据文件.它通常需要增长二进制文件 - 我目前的方法是使用更大的区域重新映射文件.
它有效,但有两个问题
有哪些替代方法,最好的方法是什么?
另外我无法弄清楚为什么会出现第二个问题.还请提出您对该问题的看法.
谢谢!
增长文件的当前代码,如果它有帮助:
(set! data (.map ^FileChannel data-fc FileChannel$MapMode/READ_WRITE
0 (+ (.limit ^MappedByteBuffer data) (+ DOC-HDR room))))
Run Code Online (Sandbox Code Playgroud)