Convertir Stream en array de bytes en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Convierta Stream a byte[] con la función Stream.CopyTo() en C#
  2. Convierta MemoryStream a byte[] con la función MemoryStream.ToArray() en C#
Convertir Stream en array de bytes en C#

Este tutorial presentará métodos para convertir un stream en un array de bytes en C#.

Convierta Stream a byte[] con la función Stream.CopyTo() en C#

La función Stream.CopyTo(memoryStream) copia bytes del Stream al memoryStream en C#. Podemos usar la función Stream.CopyTo() junto con el objeto de la clase MemoryStream para convertir un flujo en un array de bytes. El siguiente ejemplo de código nos muestra cómo convertir una secuencia en un array de bytes con la función Stream.CopyTo() en 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) {}
  }
}

En el código anterior, streamToByteArray() toma un objeto Stream como parámetro, convierte ese objeto en un byte[] y devuelve el resultado. Creamos el objeto MemoryStream ms para almacenar una copia del contenido del flujo de input. Copiamos el contenido de la secuencia input a la secuencia de memoria ms con la función input.CopyTo(ms) en C#. Devolvemos el contenido copiado en forma de array con la función ms.ToArray().

Convierta MemoryStream a byte[] con la función MemoryStream.ToArray() en C#

En el método anterior, creamos un Memorystream para convertir un Stream en un byte[]. Si tenemos un MemoryStream en lugar de un Stream, podemos usar la función MemoryStream.ToArray(). La función MemoryStream.ToArray() convierte el contenido de MemoryStream en un array de bytes en C#. El tipo de retorno de la función MemoryStream.ToArray() es byte[]. El siguiente ejemplo de código nos muestra cómo podemos convertir un MemoryStream en un byte[] con la función MemoryStream.ToArray() en C#.

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

Convertimos el objeto MemoryStream ms al byteArray con la función ms.ToArray() en 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

Artículo relacionado - Csharp Stream

Artículo relacionado - Csharp Byte Array