При чтении InputStream HttpURLConnection существует ли какая-либо причина использовать одно из следующего над другим? Я видел оба примера.Чтение HttpURLConnection InputStream - ручной буфер или BufferedInputStream?
Руководство Buffer:
while ((length = inputStream.read(buffer)) > 0) {
os.write(buf, 0, ret);
}
BufferedInputStream
is = http.getInputStream();
bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append(current);
}
EDIT Я еще новичок в HTTP в целом, но один внимание, что приходит на ум, что если я используя постоянное HTTP-соединение, я не могу просто читать до тех пор, пока входной поток не станет пустым? В таком случае мне не нужно будет читать длину сообщения и просто читать входной поток для этой длины?
И аналогично, если НЕ использовать постоянное соединение, то код, который я включил, на 100% полезен для правильного чтения потока?
Что такое 'ByteArrayBuffer'? Но никогда не было никаких причин иметь дело с одиночными байтами, когда вы могли иметь дело с массивами байтов. – EJP