11
votes

C # - Comment puis-je lire et écrire un fichier binaire?

Comment puis-je lire un tableau d'octet brut à partir de n'importe quel fichier et écrivez ce tableau d'octet dans un nouveau fichier?


3 commentaires

Encodage et binaryWriter? Le codage est une «chaîne» truc. Vous ne devriez pas avoir de problème lorsque vous avez affaire à des données binaires.


Jeremy, voulez-vous dire "en fonction du type de fichier Le format varie ..."? Si le code que vous utilisez essaie de lire / écrire des fichiers avec le mauvais type de fichier / format, je suis sûr qu'il y aurait une corruption.


Lire un fichier sous forme de octet [] n'est pas nécessairement une bonne idée; Cela pourrait être très coûteux pour les gros fichiers.


4 Réponses :


7
votes

(Modifier: Notez que la question a changé; il n'a pas mentionné octet [] initialement; voir Révision 1 )

Eh bien, fichier.copy saute à l'esprit; mais sinon, cela ressemble à un scénario : xxx


0 commentaires

3
votes

Savez-vous sur Textreader et < un href = "http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx" rel = "Nofollow Noreferrer"> TextWriter et leurs descendants StreamReader et Streamwriter ? Je pense que ceux-ci résoudront votre problème car ils manipulent les codages, BinaryReader ne connaît pas de codages ni de texte, il ne s'agit que d'octets.

Comment lire le texte d'un fichier

Comment écrire de texte dans un fichier

Il s'agit d'une excellente introduction au fichier IO et de codages.


2 commentaires

Jeremy a posé des questions sur la lecture et l'écriture de fichiers binaires, n'est-ce pas?


Si ce n'est que des données binaires, alors pourquoi y a-t-il un problème avec le codage de charme?



5
votes
byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);

1 commentaires

Notez que pour les gros fichiers qui pourraient être très



0
votes

Ajout d'une réponse à jour,

using (var source = File.OpenRead(inPath))
{
    using (var dest = File.Create(outPath))
    {
        await source.CopyToAsync(dest);
    }
}


0 commentaires