What I always used to do when facing with the issue to read the content of the file is to use a filestream, read data to the bytes array and then convert it into text:
private static string ReadFile() { FileInfo fileToRead = new FileInfo("SomeTextFile.txt"); using (FileStream stream = fileToRead.OpenRead()) { byte[] content = new byte[stream.Length]; stream.Read(content, 0, content.Length); return Encoding.ASCII.GetString(content); } } private static string ReadFile2() { FileInfo fileToRead = new FileInfo("SomeTextFile.txt"); using (StreamReader stream = fileToRead.OpenText()) { return stream.ReadToEnd(); } }As you may see, the second method is much shorter then the first one. However, the code may be even more short:
private static string ReadFile3() { return System.IO.File.ReadAllText("SomeTextFile.txt"); }Look at the System.IO.File class! How many wonderful things it has inside that can make your code shorter and life easier!
Below is few methods that will be very useful:
- File.ReadAllLines("SomeTextFile.txt") - Opens the file read all lines and return you an array of lines instead of just a string
- File.WriteAllLines("SomeTextFile.txt", new [] {"Line1", "Line2"}) - Opens a file and saves array of lines into it
- File.WriteAllText("SomeTextFile.txt", "Line1\r\nLine2") - Opens a file and writes a string into it.
There are much more.
The main benefit i see is that you should not care any more about closing the file after reading, handle streams and so on. Really, methods for lazy people!
However, I still think its useful because can save your time for more important and interesting things!