为什么RandomAccessFile的使用int作为偏移
-
18-09-2019 - |
题
我写一些数据访问测试实现,我需要随机访问文件的内容。下面的代码:
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票)。
不隶属于 StackOverflow