La copie à partir d'un flux à un autre?

Pour le travail, le cahier des charges sur mon projet est d'utiliser .Net 2.0, donc je ne la pratique CopyTo fonction amené plus tard.

J'ai besoin de copier le flux de réponse à partir d'un HttpWebResponse à un autre flux (le plus souvent une MemoryStream, mais il pourrait être une sous-classe de Stream). Mon normal tactique a été quelque chose le long des lignes de:

BufferedStream bufferedresponse = new BufferedStream(HttpResponse.GetResponseStream());
int count = 0;
byte[] buffer = new byte[1024];
do {
    count = bufferedresponse.Read(buffer, 0, buffer.Length);
    target.Write(buffer, 0, count);
} while (count > 0);
bufferedresponse.Close();

Existe-il des moyens plus efficaces pour ce faire? La taille de la mémoire tampon a vraiment de l'importance? Quel est le meilleur moyen pour copier à partir d'un flux à un autre .Net 2.0?

P. S. C'est pour télécharger un grand,+ de 200 MO SIG tif images. Bien sûr, la fiabilité est primordiale.

Double Possible de Meilleur moyen pour copier entre les deux Flux d'instances. Aussi la réponse choisie est-ce que vous êtes en train de faire, je dirais donc que vous le faites correctement.
Avant que j'en arrive à ma question fermée, je tiens à dire que la mienne est livré avec la .Net 2.0 restriction. J'espère que c'est suffisant pour le maintenir ouvert, je ne veux pas que mes questions fermées 🙁
La question que j'ai lié à la réponse à l'aide de votre méthode ainsi que la plus récente CopyTo méthode. Il vaut la peine de mentionner que vous obtiendrez de meilleures performances (si cela correspond à votre cas d'utilisation) à attendre pour l'ensemble du flux à venir et ensuite de copier le flux de plus en plus gros morceaux. Mais ce n'est pas toujours idéal.

OriginalL'auteur Corey Ogburn | 2011-06-02