【发布时间】:2019-02-15 13:19:01
【问题描述】:
我有这个(工作)代码:
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
byte[] b = new byte[1024];
int len;
while (-1 != (len = in.read(b))) {
fos.write(b, 0, len);
}
fos.flush();
但如果我将while (-1 != (len = in.read(b))) 更改为while ((len = in.read(b)) > 0),则流无法完成。这是为什么呢?
【问题讨论】:
-
好吧,
i > 0和i != -1的条件并不完全相同,在这种情况下,差别不大,只是应该在最后返回-1,但是i > 0也可以停在0。 -
所以...我已经用
ByteArrayInputStream对此进行了测试,以创建minimal reproducible example 并且两种解决方案都有效(如预期的那样)。您可以在不使用您的 url 连接的情况下提供minimal reproducible example 吗? -
对我来说,程序按预期工作并结束执行。你能详细说明一下吗
-
这是一个没有思考的问题,而不是一个编程问题。
标签: java httpurlconnection java-io