¿Se puede escribir una matriz Byte[] en un archivo en C#?

Resuelto Roberto Bonini asked hace 16 años • 9 respuestas

Estoy tratando de escribir un Byte[] matriz que represente un archivo completo en un archivo.

El archivo original del cliente se envía a través de TCP y luego lo recibe un servidor. La secuencia recibida se lee en una matriz de bytes y luego se envía para que esta clase la procese.

Esto es principalmente para garantizar que el receptorTCPClient esté lista para la siguiente transmisión y separar el extremo receptor del extremo procesador.

ElFileStream clase no toma una matriz de bytes como argumento ni otro objeto Stream (lo que le permite escribirle bytes).

Mi objetivo es que el procesamiento se realice mediante un hilo diferente al original (el que tiene TCPClient).

No sé cómo implementar esto, ¿qué debería intentar?

Roberto Bonini avatar Dec 19 '08 23:12 Roberto Bonini
Aceptado

Basado en la primera oración de la pregunta: "Estoy intentando escribir una matriz de bytes [] que represente un archivo completo en un archivo".

El camino de menor resistencia sería:

File.WriteAllBytes(string path, byte[] bytes)

Documentado aquí:

System.IO.File.WriteAllBytes-MSDN

Kev avatar Dec 19 '2008 16:12 Kev

Puedes usar un BinaryWriterobjeto.

protected bool SaveData(string FileName, byte[] Data)
{
    BinaryWriter Writer = null;
    string Name = @"C:\temp\yourfile.name";

    try
    {
        // Create a new stream to write to the file
        Writer = new BinaryWriter(File.OpenWrite(Name));

        // Writer raw data                
        Writer.Write(Data);
        Writer.Flush();
        Writer.Close();
    }
    catch 
    {
        //...
        return false;
    }

    return true;
}

Editar: Ups, olvidé la finallyparte... digamos que se deja como ejercicio para el lector ;-)

Treb avatar Dec 19 '2008 16:12 Treb