Heim >Backend-Entwicklung >C++ >Was ist der beste Weg, um einen Stream in ein Byte -Array in .NET umzuwandeln?
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.
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.
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
.
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.
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.
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!