guardar fichero escribir ejemplos convertir bytes arreglo array archivo c# .net

fichero - guardar archivo c#



¿Cuál es la forma más eficiente de guardar una matriz de bytes como un archivo en el disco en C#? (7)

En realidad, la forma más eficiente sería transmitir los datos y escribirlos a medida que los reciba. WCF es compatible con la transmisión, por lo que puede que sea algo que desearía analizar. Esto es particularmente importante si lo hace con archivos de gran tamaño, ya que es casi seguro que no desea que el contenido del archivo esté en la memoria tanto en el servidor como en el cliente.

Escenario bastante simple. Tengo un servicio web que recibe una matriz de bytes que se guardará como un tipo de archivo particular en el disco. ¿Cuál es la forma más eficiente de hacer esto en C #?




Tuve un problema similar al descargar una matriz de 300 MB de bytes a un archivo de disco ...
Usé StreamWriter , y me tomó unos buenos 30 minutos para volcar el archivo.
Usar FilePut me llevó alrededor de 3-4 minutos, y cuando utilicé BinaryWriter , el archivo se volcó en 50-60 segundos.
Si usa BinaryWriter, tendrá un mejor rendimiento.


Y WriteAllBytes solo realiza

using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read)) { stream.Write(bytes, 0, bytes.Length); }

BinaryWriter tiene un nombre engañoso, está destinado a escribir primitivas como representaciones de bytes en lugar de escribir datos binarios. Todo lo que hace su método Write (byte []) es ejecutar Write () en la secuencia que está utilizando, en este caso un FileStream.


System.IO.File.WriteAllBytes(path, data) debería funcionar bien.