Maison > développement back-end > C++ > Quelle est la meilleure façon de convertir un flux en un tableau d'octets dans .NET?

Quelle est la meilleure façon de convertir un flux en un tableau d'octets dans .NET?

Linda Hamilton
Libérer: 2025-01-31 07:01:12
original
937 Les gens l'ont consulté

What's the Best Way to Convert a Stream to a Byte Array in .NET?

Optimisation de la conversion du flux .NET vers le tableau d'octets

Plusieurs méthodes existent pour convertir un flux en un tableau d'octets dans .NET. Cet article explore les approches les plus efficaces, traitant les limites des techniques plus simples.

au-delà de BinaryReader

Bien que l'utilisation de BinaryReader pour convertir un flux en un tableau d'octets soit possible (en particulier dans .NET 3.5), il nécessite de connaître la longueur du flux au préalable. Ce n'est pas toujours pratique.

Gestion des longueurs de flux inconnues

Pour les flux avec des longueurs inconnues, une solution plus robuste est nécessaire. Une approche commune consiste à lire le flux en morceaux, à ajouter chaque morceau à un MemoryStream.

Custom ReadFully Fonction

Une fonction personnalisée ReadFully fournit un moyen propre de réaliser cette lecture en morceaux. Cette méthode lit et ajoute les données de manière itérative jusqu'à la fin du flux, reflétant efficacement la fonctionnalité de BinaryReader sans l'exigence de longueur.

Tireaging Stream.CopyTo (.net 4)

.NET 4 et les versions ultérieures offrent la méthode pratique Stream.CopyTo. Cela simplifie le processus en copiant directement le contenu du flux en A MemoryStream, qui peut ensuite être facilement converti en un tableau d'octets.

réglage des performances pour les grands flux

à la fois l'approche en morceaux et Stream.CopyTo impliquent une allocation et une copie de la mémoire. Bien qu'acceptable pour les petits flux, les performances peuvent souffrir de grands ruisseaux. Les stratégies d'optimisation incluent la pré-allocation de la MemoryStream à la taille attendue ou l'utilisation des opérations de copie de tampon plus directes pour une amélioration de l'efficacité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal