gpt4 book ai didi

java - 为什么我在此 Java 程序中收到 ArrayIndexOutOfBoundsException?

转载 作者:行者123 更新时间:2023-12-02 01:10:56 25 4
gpt4 key购买 nike

在 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());

如果我尝试读取文件的后半部分,为什么会出现越界错误?

最佳答案

而不是:

raf.getBytes(temp,4096,4096);

听起来像你想要的:

raf.seek(4096); raf.getBytes(temp,0,4096);

getBytes 的第二个参数给出了将要读取内容的缓冲区的偏移量,而不是文件中的偏移量。

关于java - 为什么我在此 Java 程序中收到 ArrayIndexOutOfBoundsException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com