La lecture HttpURLConnection InputStream - manuel de tampon ou BufferedInputStream?

Lors de la lecture de l'InputStream d'un HttpURLConnection, est-il une raison pour utiliser l'une des opérations suivantes sur les autres? J'ai vu les deux utilisés dans les exemples.

Manuel De La Mémoire Tampon:

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);
}

MODIFIER je suis encore nouveau pour HTTP en général, mais une considération qui vient à l'esprit est que si je suis en utilisant une persistance de la connexion HTTP, je ne peux pas lire jusqu'à ce que le flux d'entrée est vide à droite? Dans ce cas, n'aurais-je pas besoin de lire le message de longueur et il suffit de lire le flux d'entrée pour cette durée?

Et de la même façon, si vous n'utilisez PAS une connexion permanente, c'est le code que j'ai inclus 100% bon pour aller en termes de lecture du flux correctement?

Qu'est-ce que ByteArrayBuffer? Mais il n'y a aucune raison de traiter les octets lorsque vous pourriez avoir affaire à des tableaux d'octets.

OriginalL'auteur stormin986 | 2010-05-08