Converter Stream em array de bytes em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Converta Stream em byte[] com a função Stream.CopyTo() em C#
  2. Converta MemoryStream em byte[] com a função MemoryStream.ToArray() em C#
Converter Stream em array de bytes em C#

Este tutorial apresentará métodos para converter um fluxo em un array de bytes em C#.

Converta Stream em byte[] com a função Stream.CopyTo() em C#

A função Stream.CopyTo(memoryStream) copia bytes de Stream para memoryStream em C#. Podemos usar a função Stream.CopyTo() junto com o objeto da classe MemoryStream para converter um fluxo em un array de bytes. O exemplo de código a seguir nos mostra como converter um fluxo em un array de bytes com a função Stream.CopyTo() em 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) {}
  }
}

No código acima, streamToByteArray() recebe um objeto Stream como parâmetro, converte esse objeto em um byte[] e retorna o resultado. Criamos o objeto MemoryStream ms para armazenar uma cópia do conteúdo do fluxo input. Copiamos o conteúdo do fluxo input para o fluxo de memória ms com a função input.CopyTo(ms) em C#. Retornamos o conteúdo copiado na forma de um array com a função ms.ToArray().

Converta MemoryStream em byte[] com a função MemoryStream.ToArray() em C#

No método acima, criamos um Memorystream para converter um Stream em um byte[]. Se tivermos um MemoryStream em vez de um Stream, podemos usar a função MemoryStream.ToArray(). A função MemoryStream.ToArray() converte o conteúdo de MemoryStream em un array de bytes em C#. O tipo de retorno da função MemoryStream.ToArray() é byte[]. O exemplo de código a seguir nos mostra como podemos converter um MemoryStream em um byte[] com a função MemoryStream.ToArray() em C#.

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

Convertemos o objeto MemoryStream ms para o byteArray com a função ms.ToArray() em 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

Artigo relacionado - Csharp Stream

Artigo relacionado - Csharp Byte Array