なぜにRandomAccessFileは、オフセットとしてintを使用しません
-
18-09-2019 - |
質問
私はいくつかのデータ・アクセス・テストの実装を書いていますし、私は、ファイルの内容へのランダムアクセスを必要とします。ここでは、コードがあります:
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rwd");
final byte b[] = IOUtils.toByteArray(source);
randomAccessFile.write(b, (int) offset, size);
ここで、オフセットは、long型ました。 なぜにRandomAccessFile方法を提供しません。
public void write(byte b[], long off, int len)
どのようにこの問題を上書きするには?
解決
私はあなたがseek
方法を探していると思います。
write
のオフセット配列にオフセットされています。配列はint
オフセットを持っています。そこ「長い配列」の提案されているが、これらが実装された、あなたはまだ、過負荷が必要と思います。
NIOにマッピングファイルが何らかの理由で同等のMappedByteBuffer.position
だけint
を使用するという問題がでています。 CR 6347833 の(9票)を参照してください。
所属していません StackOverflow