The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague. -- Edsger Dijkstra

How Do I Read a File As an Array of Bytes in C#

By steve on Friday, February 16, 2007.
Updated Wednesday, August 28, 2013.
Viewed 141,552 times. (59 times today.)
DeveloperTips and Tutorials.NETC#


How do I read a file as an array of bytes?

.NET provides a lot of great tools for reading and writing files, lots of stream classes. If you're like me, I kind of find dealing with streams a pain. If I want to read a file I should only have to say "ReadFile" and the content should be there the way I want.

As a result, I tend to write lots of helper methods that hide the stream manipulations so I don't have to remember them. Here's one that will read any file as an array of bytes. I've found this useful with both binary and text files when I didn't have to analyze the data inside--such as a simple file transfer.

public static byte[] GetBytesFromFile(string fullFilePath)
   // this method is limited to 2^32 byte files (4.2 GB)

   FileStream fs = null;
      fs = File.OpenRead(fullFilePath);
      byte[] bytes = new byte[fs.Length];
      fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
      return bytes;
      if (fs != null)



The above is still a good way to read a file using a FileStream object, but a few years on and this functionality is now baked into the .NET framework.

byte[] bytes = File.ReadAllBytes("c:\folder\myfile.ext");
Back to Top

Share This Page:

comments powered by Disqus
Share This Page:
Welcome to my blog about software development and the Microsoft stack.

I've been a full time .NET developer for fifteen years, but I didn't start my professional life as a programmer ... more