gpt4 book ai didi

Java 是否 InputSream.read(byte[] b, int offset, int length) 等待指定的全部字节数

转载 作者:行者123 更新时间:2023-12-01 04:24:47 24 4
gpt4 key购买 nike

如果我这样做,inStream.read(buffer, 0, 65); Java 会等待所有 65 个字节,还是会等待一定时间,然后尽可能地填充缓冲区。

最佳答案

InputStream.read(byte[] b, int off, int len)将读取字节到给定的 byte[] 中,直到 len,并返回实际读取的字节数,如果结束则返回 -1遇到流。它必须尝试读取至少一个字节(除非这样做,否则会阻塞),除非遇到流末尾,将 0 作为 len 参数的参数给出,或者抛出异常。

在读取 len 个字节之前调用是否阻塞是一个实现细节,特别是 java.io.InputStream 中提供的默认实现将阻塞直到 len 字节被读取,遇到流的末尾,或者抛出异常,但是实现可以立即立即返回可用字节(只要至少有一个字节要读取)并且仍然满足方法的契约。

总而言之,您应该始终检查返回值以了解实际从流中读取了多少字节。

关于Java 是否 InputSream.read(byte[] b, int offset, int length) 等待指定的全部字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18597244/

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