相关疑难解决方法(0)

读取HttpURLConnection InputStream - 手动缓冲区还是BufferedInputStream?

在读取HttpURLConnection的InputStream时,是否有任何理由使用以下哪一个而不是另一个?我见过两个例子都用过.

手动缓冲:

while ((length = inputStream.read(buffer)) > 0) {
    os.write(buf, 0, ret);
}
Run Code Online (Sandbox Code Playgroud)

的BufferedInputStream

is = http.getInputStream();
bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);

int current = 0;
while ((current = bis.read()) != -1) {
     baf.append(current);
}
Run Code Online (Sandbox Code Playgroud)

编辑我一般都是HTTP的新手,但我想到的一个考虑因素是,如果我使用持久的HTTP连接,我不能只读到输入流是空的吗?在这种情况下,我不需要读取消息长度并只读取该长度的输入流吗?

同样,如果不使用持久连接,那么我所包含的代码在正确读取流方面是否100%好?

buffer inputstream bufferedinputstream httpurlconnection

4
推荐指数
1
解决办法
3万
查看次数