我写一些数据访问测试实现,我需要随机访问文件的内容。下面的代码:

RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rwd");
final byte b[] = IOUtils.toByteArray(source);
randomAccessFile.write(b, (int) offset, size);

,其中偏移的类型为长。 为什么不提供的RandomAccessFile方法:

public void write(byte b[], long off, int len)

如何重写这个问题?

有帮助吗?

解决方案

我认为你正在寻找seek方法。

write偏移是偏移到阵列。数组有int偏移。一直以来都有“长阵列”的建议,但被这些实现,你仍旧需要一个过载。

在NIO映射文件有一个问题,即由于某种原因,等效MappedByteBuffer.position只使用int。请参阅 CR 6347833 (9票)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top