我正在使用 java.nio 包在 Java 中实现内存映射流。它将一块内存映射到输出文件,当需要将更多元素写入输出文件时,它会映射另一个块,依此类推。
w_buffer = channel.map(FileChannel.MapMode.READ_WRITE, w_cycle*bufferSize, bufferSize);
当要写入文件的元素总量是一次映射到文件的块大小的倍数时,我的实现工作顺利。但是,如果不是这种情况——这种情况不会经常发生,因为流无法决定/知道用户何时停止写入——映射块中的剩余空间也会以尾随零的形式转储到文件中。我应该如何避免输出文件中的这些尾随零?
提前致谢。