C# Eingabestream zum Byte -Array: Eine praktische Anleitung
Ein Eingabestream in ein Byte -Array konvertieren, ist eine häufige Aufgabe bei der Behandlung von Binärdaten in C#. Die beste Methode hängt davon ab, ob Sie die Größe des Streams kennen.
Bekannte Streamgröße:
Wenn die Länge des Streams verfügbar ist, bietet BinaryReader.ReadBytes
eine einfache Lösung:
<code class="language-csharp">using (BinaryReader br = new BinaryReader(s)) { byte[] b = br.ReadBytes((int)s.Length); }</code>
Dies liest den gesamten Stream direkt in ein Byte -Array.
Unbekannte Streamgröße:
Für Streams mit unbekannten Längen ist ein robusterer iterativerer Ansatz erforderlich:
<code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { byte[] buffer = new byte[16 * 1024]; // Adjust buffer size as needed int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } byte[] b = ms.ToArray(); }</code>
Diese Methode liest den Stream in Stücken und sammel
MemoryStream
.NET 4 und spätere Versionen bieten eine effizientere und prägnantere Lösung mit
:
Stream.CopyTo
<code class="language-csharp">using (MemoryStream ms = new MemoryStream()) { input.CopyTo(ms); byte[] b = ms.ToArray(); }</code>
Leistung und Ressourcenverwaltung:
Denken Sie daran, dass das Lesen in Stücken die Leistung beeinflussen kann. Experimentieren Sie mit verschiedenen Puffergrößen, um Ihre spezifischen Anforderungen zu optimieren. Stellen Sie immer einen ordnungsgemäßen Verschluss des Stroms sicher, um Ressourcenlecks zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann man einen Eingangsstrom effizient in ein Byte -Array in C#konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!