【发布时间】:2013-09-27 15:47:11
【问题描述】:
我在 Java 6 中使用 RandomAccessFile,但在读取字节时出现了一些奇怪的行为。
使用以下代码,其中 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?
标签: java indexoutofboundsexception randomaccessfile