C# Convertir el array de bytes en cadena

Minahil Noor 16 febrero 2024
  1. Convertir un Byte Array en una cadena usando el método Encoding.GetString() en C#
  2. Programa C# para convertir una array de bytes en una cadena usando el método MemoryStream
C# Convertir el array de bytes en cadena

Una array de bytes es un array de bytes. En C#, una array de bytes se utiliza para almacenar sólo valores positivos que van de 0 a 255. Cada elemento de la array tiene un espacio de memoria de 1 byte (8 bits).

En C#, una array de bytes puede ser procesada como un array normal. Es interesante saber que una array de bytes puede ser convertida a su equivalente cadena. Una cadena puede ser convertida a diferentes valores de codificación y luego almacenada en una array de bytes.

En este artículo, vamos a revisar diferentes métodos para convertir una array de bytes en una cadena. Vamos a sumergirnos.

Convertir un Byte Array en una cadena usando el método Encoding.GetString() en C#

El método Encoding.GetString() convierte todos los bytes de una array de bytes en una cadena. Este método pertenece a la clase Encoding. Esta clase tiene diferentes esquemas de codificación como Unicode, UTF8, ASCII, UTF32, etc.

La sintaxis correcta para usar este método es la siguiente:

Encoding.Default.GetString(ByteArrayName);

Aquí se usa Encoding.Default.GetString(), que convertirá los bytes del array de bytes en el tipo string por defecto. Usará el esquema de codificación por defecto.

Código de ejemplo:

using System;
using System.Text;

namespace Example {
  class Conversion {
    static void Main(string[] args) {
      byte[] ByteArray = {
        84, 104, 105, 115, 32, 105, 115, 32, 101, 120, 97, 109, 112, 108, 101,
      };
      Console.WriteLine("The Byte Array is: " + String.Join(" ", ByteArray));
      string String = Encoding.Default.GetString(ByteArray);
      Console.WriteLine("The String is: " + String);
    }
  }
}

Producción :

The Byte Array is: 84 104 105 115 32 105 115 32 101 120 97 109 112 108 101
The String is: This is example

Programa C# para convertir una array de bytes en una cadena usando el método MemoryStream

En C#, la clase MemoryStream se utiliza para crear un flujo de datos. Esta clase pertenece al espacio de nombres System.IO. Se puede usar para convertir un array de bytes en una cadena.

La sintaxis correcta para usar este método es la siguiente:

using (MemoryStream Stream = new MemoryStream(ByteArrayName)) {
  using (StreamReader streamReader = new StreamReader(Stream)) {
    return streamReader.ReadToEnd();
  }
}

Aquí, hemos creado una MemoryStream que contiene los bytes de una array de bytes específica. Luego, hemos usado un StreamReader para leer todos los bytes de MemoryStream y devolver el flujo como una cadena.

Hemos creado un método personalizado llamado BytesToStringConversion() que acepta una array de bytes como parámetro y luego devuelve una cadena.

Código de ejemplo:

using System;
using System.Text;
using System.IO;

namespace Example {
  class Conversion {
    static string BytesToStringConversion(byte[] bytes) {
      using (MemoryStream Stream = new MemoryStream(bytes)) {
        using (StreamReader streamReader = new StreamReader(Stream)) {
          return streamReader.ReadToEnd();
        }
      }
    }
    static void Main(string[] args) {
      byte[] ByteArray = {
        84, 104, 105, 115, 32, 105, 115, 32, 101, 120, 97, 109, 112, 108, 101,
      };
      Console.WriteLine("The Byte Array is: " + String.Join(" ", ByteArray));

      string str = BytesToStringConversion(ByteArray);
      Console.WriteLine("The String is: " + str);
    }
  }
}

Producción :

The Byte Array is: 84 104 105 115 32 105 115 32 101 120 97 109 112 108 101
The String is: This is example

Artículo relacionado - Csharp Byte Array

Artículo relacionado - Csharp String