在 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());
如果我尝试从文件的后半部分读取,为什么会出现越界错误?