Converti Stream in array di byte in C#

Muhammad Maisam Abbas 12 ottobre 2023
  1. Converti Stream in byte[] con la funzione Stream.CopyTo() in C#
  2. Converti MemoryStream in byte[] con la funzione MemoryStream.ToArray() in C#
Converti Stream in array di byte in C#

Questo tutorial introdurrà i metodi per convertire uno stream in un array di byte in C#.

Converti Stream in byte[] con la funzione Stream.CopyTo() in C#

La funzione Stream.CopyTo(memoryStream) copia i byte da Stream a memoryStream in C#. Possiamo usare la funzione Stream.CopyTo() insieme all’oggetto della classe MemoryStream per convertire uno stream in un array di byte. Il seguente esempio di codice ci mostra come convertire un flusso in un array di byte con la funzione Stream.CopyTo() in C#.

using System;
using System.IO;

namespace stream_to_byte_array {
  class Program {
    public static byte[] streamToByteArray(Stream input) {
      MemoryStream ms = new MemoryStream();
      input.CopyTo(ms);
      return ms.ToArray();
    }
    static void Main(string[] args) {}
  }
}

Nel codice precedente, streamToByteArray() accetta un oggetto Stream come parametro, converte quell’oggetto in un byte[] e restituisce il risultato. Creiamo l’oggetto MemoryStream ms per memorizzare una copia del contenuto del flusso input. Copiamo il contenuto del flusso input nel flusso di memoria ms con la funzione input.CopyTo(ms) in C#. Restituiamo il contenuto copiato sotto forma di array con la funzione ms.ToArray().

Converti MemoryStream in byte[] con la funzione MemoryStream.ToArray() in C#

Nel metodo sopra, creiamo un Memorystream per convertire uno Stream in un byte[]. Se abbiamo un MemoryStream invece di uno Stream, possiamo usare la funzione MemoryStream.ToArray(). La funzione MemoryStream.ToArray() converte il contenuto di MemoryStream in un array di byte in C#. Il tipo di ritorno della funzione MemoryStream.ToArray() è byte[]. Il seguente esempio di codice ci mostra come possiamo convertire un MemoryStream in un byte[] con la funzione MemoryStream.ToArray() in C#.

MemoryStream ms = new MemoryStream();
byte[] byteArray = ms.ToArray();

Abbiamo convertito l’oggetto MemoryStream ms in byteArray con la funzione ms.ToArray() in C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Articolo correlato - Csharp Stream

Articolo correlato - Csharp Byte Array