Я использую RandomAccessFile в Java 6, но при чтении байтов имеет странное поведение.IndexOutofBounds при использовании прочитанных байтов Java
С помощью следующего кода, где 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();
}
Кто-нибудь знает, почему это может быть?
Какое значение имеет 'offset'? – ssantos