gpt4 book ai didi

java - 为什么输入流读取方法返回 int?

转载 作者:行者123 更新时间:2023-12-01 13:20:21 25 4
gpt4 key购买 nike

我试图通过输入流中的读取方法了解幕后发生的情况。

我知道我可以执行以下操作:

InputStream is = new FileInputStream(new File("myFile.txt"));

byte[] buffer = new byte[8192];

while(is.read(buffer) != -1) {
// do something with the bytes
}

我相信这是通过将最多 8192 字节读取到我的字节数组中然后对这些字节执行某些操作来实现的。但为什么读取会返回读取字节数的整数呢?这纯粹是为了让使用字节数组中的字节的任何东西都知道何时停止寻找字节吗?

我想我很困惑,因为,例如,我的一篇读物显示

buffer[0] = 70
buffer[1] = 105
buffer[2] = 108
etc...

但是如果我要读取整个字节数组的最多 8192 个字节,为什么数组中的元素设置是这样的?

我意识到这可能是一个愚蠢的问题,但如果您能帮助我理解这一点,我将不胜感激。

最佳答案

is.read(buffer) 方法读取最大可用字节数或 buffer.length(在本例中为 8192)字节,以先到者为准。

如果整个数组未填充(这是可能的,因为可用字节数可能小于 buffer.length),那么拥有 buffer.length 的字节数可能会很有用。 em>被读取,以便可以安全地迭代数组,而不会抛出NullPointerException

您看到的原因

buffer[0] = 70
buffer[1] = 105
buffer[2] = 108
etc...

是因为在读取的字节流中,第一个值为70,第二个值为105,第三个值为108,依此类推。这些实际上是流的内容,一次一个字节。

关于java - 为什么输入流读取方法返回 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072698/

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