【发布时间】:2012-09-19 06:20:33
【问题描述】:
我希望在 Java NIO 中有一个内存映射文件,这样我就可以随机移动文件中的任何位置来读取它的任何部分,就像一个 seek 方法。是否可以使用内存映射文件,就像使用 RandomAccessFile 一样。
注意:文件将处于读/写模式。
谢谢!
【问题讨论】:
-
你试过 position(int) 吗?
我希望在 Java NIO 中有一个内存映射文件,这样我就可以随机移动文件中的任何位置来读取它的任何部分,就像一个 seek 方法。是否可以使用内存映射文件,就像使用 RandomAccessFile 一样。
注意:文件将处于读/写模式。
谢谢!
【问题讨论】:
假设您的文件小到可以放入一个 ByteBuffer,您可以使用position(int)。另一种选择是使用Xxx value = getXxx(offset) 或putXxx(offset, value) 随机访问缓冲区
如果您的内存超过 2 GB,您将需要一个 ByteBuffer 数组或列表来映射整个内存(假设您有 64 位 JVM)
【讨论】: