Java 6ではRandomAccessFileを使用していますが、バイトを読み取るときには異常な動作があります。Javaの読み取りバイトを使用する場合のIndexOutofBounds
offset
と
data
が適切に初期化され、次のコードで
:私は次のスタックトレースを取得
int offset;
byte data[];
randFile.readFully(data, offset, data.length);
:
null
java.lang.IndexOutOfBoundsException
at java.io.RandomAccessFile.readBytes(Native Method)
at java.io.RandomAccessFile.read(RandomAccessFile.java:355)
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:414)
しかし、offset
とdata
の同じ値を持つが、次の(一見同一の)コードはうまく動作します!
randFile.seek(offset);
for (int i = 0; i < (data.length); i += 1) {
data[i] = randFile.readByte();
}
なぜこれが起こっているのかについての洞察はありますか?
「オフセット」はどの値ですか? – ssantos