Heim > Backend-Entwicklung > C++ > Wie kann man einen Eingangsstrom effizient in ein Byte -Array in C#konvertieren?

Wie kann man einen Eingangsstrom effizient in ein Byte -Array in C#konvertieren?

Patricia Arquette
Freigeben: 2025-01-31 06:56:09
Original
307 Leute haben es durchsucht

How to Efficiently Convert an Input Stream to a Byte Array in C#?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Diese Methode liest den Stream in Stücken und sammel MemoryStream

.net 4 und höher: stream.copyto

.NET 4 und spätere Versionen bieten eine effizientere und prägnantere Lösung mit

:

Stream.CopyTo

Dies gilt elegant Streams jeder Größe.
<code class="language-csharp">using (MemoryStream ms = new MemoryStream())
{
    input.CopyTo(ms);
    byte[] b = ms.ToArray();
}</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage