Heim >Backend-Entwicklung >C++ >Wie kann man einen Stream effizient in ein Byte -Array in .NET konvertieren?
Die transformierende Eingabe in Byte -Array ist eine häufige Aufgabe bei der Programmierung. Es gibt viele Möglichkeiten, diesen Zweck zu erreichen.
Verwenden Sie BinaryReader
In .NET 3.5 war eine häufig verwendete Methode, die BinaryReader -Klasse zu verwenden, wie im folgenden Codefragment gezeigt:
Diese Methode zeigt ein Array der angegebenen Länge und liest den gesamten Inhalt des Flusses in das Array. Es hängt jedoch vom genauen Verständnis der Durchflusslänge ab, und dies ist nicht immer verfügbar.
<code class="language-csharp">Stream s; byte[] b; using (BinaryReader br = new BinaryReader(s)) { b = br.ReadBytes((int)s.Length); }</code>Lesen und schreiben Sie in Blöcken
Wenn die Länge des Flusses unzuverlässig oder unzuverlässig ist, kann die Verwendung von kreisförmigen Segmenten zum Lesefluss effizienter sein:
Diese Methode liest die Daten wiederholt bis zum Ende des Stroms in den Puffer. Es akkumuliert Daten in MemoryStream, bevor das Byte -Array zurückgegeben wird.oder in den Versionen .NET 4 und höhere Versionen können Sie Stream.copyto verwenden, um die gleichen Ergebnisse wie der obige Zyklus zu erzielen:
<code class="language-csharp">public static byte[] ReadFully(Stream input) { byte[] buffer = new byte[16 * 1024]; using (MemoryStream ms = new MemoryStream()) { int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } return ms.ToArray(); } }</code>
Andere Vorsichtsmaßnahmen
<code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { s.CopyTo(ms); return ms.ToArray(); }</code>Die Auswahl dieser Methoden hängt von mehreren Faktoren ab:
Die Zuverlässigkeit der Durchflusslänge:
Wenn sie bekannt und zuverlässig ist, kann die Verwendung von BinaryReader die Effizienz verbessern.Stream:
Das obige ist der detaillierte Inhalt vonWie kann man einen Stream effizient in ein Byte -Array in .NET konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!