Comment écrire le contenu d'un flux de données en un autre flux dans .net?
J'ai souvent le problème que j'ai un ruisseau plein de données et que vous souhaitez tout écrire dans un autre flux.
Tous les code-exemples de l'utilisation d'un tampon en forme d'un tableau d'octets.
Est-il une façon plus élégante de cette?
Si non, quelle est la taille idéale de la mémoire tampon. Les facteurs qui composent cette valeur?
Vous devez vous connecter pour publier un commentaire.
Concernant l'idéal taille de la mémoire tampon:
"Lors de l'utilisation de la méthode de Lecture, il est plus efficace d'utiliser un tampon, qui est la même taille que la mémoire tampon interne de la rivière, où la mémoire tampon interne est mis à votre choix de la taille du bloc, et de toujours lire moins de la taille de bloc. Si la taille de la mémoire tampon interne n'a pas été spécifié lorsque le flux a été construit, sa taille par défaut est de 4 kilo-octets (4096 octets)."
Tout flux de processus de lecture va Lire(char buffer[], int index, comte), qui est la méthode de cette citation se réfère.
http://msdn.microsoft.com/en-us/library/9kstw824.aspx (Sous La Rubrique "Remarques").
Dans .NET 4.0 nous avons enfin obtenu un
Stream.CopyTo
méthode! Yay!!!Je ne suis pas sûr si vous pouvez directement le tuyau d'un flux à l'autre .NET, mais voici une méthode pour le faire avec un intermédiaire d'octets de la mémoire tampon. La taille de la mémoire tampon est arbitraire. La dimension la plus efficace dépendra surtout de la quantité de données que vous transférez.
BufferedStream.CopyTo(Stream)
Lire des données dans FileStream dans un générique de Flux
aura probablement quelques pistes pour aller dans
Je ne suis pas au courant d'une façon plus élégante, qu'à l'aide d'un tampon.
Mais la taille d'un tampon peut faire une différence. Souvenez-vous des questions à propos de Vista de la Copie de Fichier? C'est la raison était (en gros) la modification de la taille de la mémoire tampon. Les modifications sont expliquées dans ce billet de blog. Vous pouvez apprendre les principaux facteurs de ce poste. Toutefois, cela s'applique uniquement pour la copie de fichier. Dans les applications sans doute vous faire beaucoup de mémoire des copies, donc dans ce cas, le 4KO pourrait être la meilleure taille de la mémoire tampon, comme recommandé par la .NET de la documentation.