Scénario assez simple. J'ai un service Web qui reçoit un tableau d'octets qui doit être enregistré sous un type de fichier particulier sur le disque. Quel est le moyen le plus efficace de le faire en C #?
Réponses
Trop de publicités? Ce serait File.WriteAllBytes()
.
Et WriteAllBytes effectue juste
using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.Write(bytes, 0, bytes.Length);
}
BinaryWriter a un nom trompeur, il est destiné à l'écriture de primitives sous forme de représentation d'octet au lieu d'écrire des données binaires. Toute sa méthode Write (byte []) exécute Write () sur le flux qu'il utilise, dans ce cas un FileStream.
Vous ne savez pas ce que vous entendez par "efficace" dans ce contexte, mais j'utiliserais System.IO.File.WriteAllBytes (chemin de la chaîne, octet [] octets) - Certainement efficace en termes de LOC.
Peut-être le Système.IO.BinaryWriter et BinaryReader classes de l'aide.
http://msdn.microsoft.com/en-us/library/system.io.binarywriter.aspx
"Écritures de types primitifs en binaire à un flux de données et prend en charge l'écriture de chaînes dans un codage spécifique."
http://msdn.microsoft.com/en-us/library/system.io.binaryreader.aspx
"Lit les types de données primitifs comme des valeurs binaires dans un codage spécifique."