Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - How do I read and write a binary file?

How do I read a raw byte array from any file, and write that byte array back into a new file?

like image 719
Robin Rodricks Avatar asked Sep 20 '09 07:09

Robin Rodricks


3 Answers

(edit: note that the question changed; it didn't mention byte[] initially; see revision 1)

Well, File.Copy leaps to mind; but otherwise this sounds like a Stream scenario:

    using (Stream source = File.OpenRead(inPath))
    using (Stream dest = File.Create(outPath)) {
        byte[] buffer = new byte[2048]; // pick size
        int bytesRead;
        while((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0) {
            dest.Write(buffer, 0, bytesRead);
        }
    }
like image 62
Marc Gravell Avatar answered Oct 19 '22 12:10

Marc Gravell


byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);
like image 20
Tommy Carlier Avatar answered Oct 19 '22 10:10

Tommy Carlier


Do you know about TextReader and TextWriter, and their descendents StreamReader and StreamWriter? I think these will solve your problem because they handle encodings, BinaryReader does not know about encodings or even text, it is only concerned with bytes.

How to read text from a file

How to write text to a file

This is an excellent intro to file IO and encodings.

like image 44
Dale Avatar answered Oct 19 '22 10:10

Dale