¿Cómo convierto struct System.Byte byte[] en un objeto System.IO.Stream en C#?

Resuelto Mehdi Hadeli asked hace 13 años • 6 respuestas

¿Cómo convierto una estructura System.Byte byte[]en un System.IO.Streamobjeto en C# ?

Mehdi Hadeli avatar Jan 19 '11 21:01 Mehdi Hadeli
Aceptado

La forma más sencilla de convertir una matriz de bytes en una secuencia es utilizar la MemoryStreamclase:

Stream stream = new MemoryStream(byteArray);
Martin Buberl avatar Jan 22 '2011 18:01 Martin Buberl

Estás buscando el MemoryStream.Writemétodo .

Por ejemplo, el siguiente código escribirá el contenido de una byte[]matriz en un flujo de memoria:

byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream();
stream.Write(myByteArray, 0, myByteArray.Length);

Alternativamente, puede crear un objeto nuevo , no redimensionable, MemoryStreambasado en la matriz de bytes:

byte[] myByteArray = new byte[10];
MemoryStream stream = new MemoryStream(myByteArray);
Cody Gray - on strike avatar Jan 19 '2011 14:01 Cody Gray - on strike

El enfoque general para escribir en cualquier secuencia (no solo MemoryStream) es utilizar BinaryWriter:

static void Write(Stream s, Byte[] bytes)
{
    using (var writer = new BinaryWriter(s))
    {
        writer.Write(bytes);
    }
}
QrystaL avatar Jan 19 '2011 15:01 QrystaL