Estoy tratando de escribir una 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. El flujo recibido se lee en una matriz de bytes y luego se envía para ser procesado por esta clase.
Esto es principalmente para garantizar que la recepción TCPClient
esté lista para la siguiente secuencia y separe el extremo receptor del final del procesamiento.
La FileStream
clase no toma una matriz de bytes como argumento u otro objeto Stream (que sí le permite escribir bytes).
Mi objetivo es que el procesamiento sea realizado por un hilo diferente del original (el que tiene el TCPClient).
No sé cómo implementar esto, ¿qué debo probar?
BinaryWriter
es desechable, por lo que probablemente debería usarse dentro de unusing
bloque. Eso también significa que probablemente podría dejar algunas de las llamadas adicionales, ya que el código fuente muestra que hace un poco de limpieza mientras se deshace.Hay un método estático
System.IO.File.WriteAllBytes
fuente
Puedes hacer esto usando el
System.IO.BinaryWriter
que toma un Stream para:fuente
Flush()
antes,Close()
ya queClose()
se vaciará. Aún mejor es usar unausing
cláusula que también vaciará y cerrará.Puede usar el método FileStream.Write (byte [] array, int offset, int count) para escribirlo.
Si el nombre de su matriz es "myArray", el código sería.
fuente
Sí, ¿por qué no?
fuente
Prueba BinaryReader:
fuente