【发布时间】:2013-11-10 10:43:56
【问题描述】:
在 Java 中,我正在使用 RandomAccessFile 做一些工作。我有一个 8192 字节或 8kb 的文件。
以下导致 ArrayIndexOutOfBoundsException:
File file = new File("TestFile1");
raf = new RandomAccessFile(file, "rw");
byte[] temp = new byte[4096];
raf.read(temp, 4096, 4096);
即使是这样的事情也会导致同样的错误:
raf.read(temp, 4096, 1);
虽然这样的事情很完美:
raf.read(temp, 0, 4096);
当我运行以下命令时,我得到 8192,这就是为什么我不知道为什么它不起作用:
System.out.println(raf.getChannel().size());
如果我尝试从文件的后半部分读取,为什么会出现越界错误?
【问题讨论】:
-
请告诉我们并告诉我们什么是 bp1。这似乎是您向我们隐瞒的关键信息。
-
@matheszabi:我对这个问题投了反对票,因为所问的问题太模棱两可了,遗漏了关键信息。此后,它已得到纠正,并删除了反对票。
-
谢谢@HovercraftFullOfEels
标签: java io indexoutofboundsexception