자바 6에서 RandomAccessFile을 사용하고 있지만 바이트를 읽을 때 이상한 동작이 있습니다. offset
및 data
가 적절하게 초기화 다음 코드와Java의 읽기 바이트를 사용할 때 IndexOutofBounds
:
int offset;
byte data[];
randFile.readFully(data, offset, data.length);
나는 다음과 같은 스택 추적 얻을 : offset
및 data
같은 값
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)
하지만을의 다음 (겉으로보기에 동일한) 코드가 잘 작동합니다!
randFile.seek(offset);
for (int i = 0; i < (data.length); i += 1) {
data[i] = randFile.readByte();
}
누구에게 이것이있을 수 있는지에 대한 통찰력이 있습니까?
bytes.-
data.length - offset
을 읽어야? – ssantos