Heim >Backend-Entwicklung >C++ >Was ist der beste Weg, um einen Stream in ein Byte -Array in .NET umzuwandeln?

Was ist der beste Weg, um einen Stream in ein Byte -Array in .NET umzuwandeln?

Linda Hamilton
Linda HamiltonOriginal
2025-01-31 07:01:12892Durchsuche

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

optimieren .NET -Stream zu Byte -Array -Konvertierung

Es gibt verschiedene Methoden, um einen Stream in ein Byte -Array in .NET zu konvertieren. In diesem Artikel werden die effizientesten Ansätze untersucht und die Einschränkungen einfacherer Techniken behandelt.

jenseits BinaryReader

Während der Verwendung BinaryReader, um einen Stream in ein Byte -Array zu konvertieren, ist möglich (insbesondere in .NET 3.5), muss die Länge des Streams vorher wissen. Das ist nicht immer praktisch.

Umgang mit unbekannten Stromlängen

Für Streams mit unbekannten Längen ist eine robustere Lösung erforderlich. Ein allgemeiner Ansatz besteht darin, den Stream in Stücken zu lesen und jeden Chunk an eine MemoryStream.

anzuhängen

benutzerdefinierte ReadFully Funktion

Eine benutzerdefinierte ReadFully -Funktion bietet eine saubere Möglichkeit, diese Chunked -Lesart zu erreichen. Diese Methode liest und fügt Daten iterativ zu, bis das Ende des Streams erreicht ist, was die Funktionalität von BinaryReader ohne die Länge des Längens effektiv widerspiegelt.

nutzen Stream.CopyTo (.net 4)

.NET 4 und spätere Versionen bieten die praktische Stream.CopyTo -Methode. Dies vereinfacht den Prozess, indem der Inhalt des Streams direkt in eine MemoryStream kopiert wird, die dann leicht in ein Byte -Array umgewandelt werden kann.

Leistungsstimmen für große Streams

Sowohl der Chunked -Ansatz als auch Stream.CopyTo beinhalten Speicherzuweisung und Kopieren. Während für kleine Ströme akzeptabel ist, kann die Leistung mit großen Bächen leiden. Optimierungsstrategien umfassen das Vorabbau des MemoryStream zur erwarteten Größe oder die Verwendung von direkteren Pufferkopiervorgängen für eine verbesserte Effizienz.

Das obige ist der detaillierte Inhalt vonWas ist der beste Weg, um einen Stream in ein Byte -Array in .NET umzuwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn