¿Se puede escribir una matriz Byte[] en un archivo en C#?
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?
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
Puedes usar un BinaryWriter
objeto.
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 finally
parte... digamos que se deja como ejercicio para el lector ;-)