当读取HttpURLConnection的InputStream时,使用以下哪种方法有什么理由?我在示例中看到两者都被使用。
手动缓冲:
while ((length = inputStream.read(buffer)) > 0) {
os.write(buf, 0, ret);
}
缓冲输入流
is = http.getInputStream();
bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append(current);
}
编辑 我对HTTP还很陌生,但有一个考虑因素是,如果我正在使用持久的HTTP连接,我不能只读取输入流直到为空,对吗?在这种情况下,我需要读取消息长度,然后仅读取该长度的输入流,对吗?
同样地,如果不使用持久连接,那么我包含的代码在正确读取流方面是否100%可行?
ByteArrayBuffer
?但是当你可以处理字节数组时,就没有理由只处理单个字节。 - user207421