为什么输入流中的-1表示http响应的结束

时间:2017-05-10 04:05:08

标签: java android http

在Android文档中:https://developer.android.com/reference/java/net/HttpURLConnection.html 我们可以找到:-1是输入流的结束,这意味着我们到达了http响应的结尾

  

getContentLength()返回传输的字节数,不能用于预测压缩流的getInputStream()可以读取多少字节。相反,读取该流直到它耗尽,即当read()返回-1时。

为什么-1可以表示http响应

1 个答案:

答案 0 :(得分:0)

-1并不特定于HTTP处理,实际上每个InputStream都会在EOF时从read()返回-1,因此每次使用时都必须处理它。

如果你有文字,你想简化你的代码,你可以通过InputStreamReader将你的代码包装在Reader中,然后在BufferedReader中,然后你可以在循环中调用readLine(),直到它返回null。