gpt4 book ai didi

java - InputStream.read(byte[]) 返回的 0 是什么意思?如何处理?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:29 28 4
gpt4 key购买 nike

InputStream.read(byte[])InputStream.read(byte[], int, int) 返回的 0(读取的字节数)是什么意思?如何处理这种情况?

明确地说,我指的是 read(byte[] b)read(byte[] b, int off, int len) 返回字节数的方法阅读。

最佳答案

InputStream 可能从对 read(byte[]) 的调用返回 0 的唯一情况当传入的byte[]长度为0时:

 byte[] buf = new byte[0];
int read = in.read(buf); // read will contain 0

如 JavaDoc 的这一部分所指定:

If the length of b is zero, then no bytes are read and 0 is returned

我的猜测:你使用了 available()查看缓冲区应该有多大,它返回 0。请注意,这是对 available() 的误用。 JavaDoc 明确指出:

It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.

关于java - InputStream.read(byte[]) 返回的 0 是什么意思?如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319395/

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