TheDeveloperBlog.com


C# File.ReadLines

File.ReadLines reads lines as you process them. We can read all the lines in from a file in a foreach-loop. With the File.ReadLines method, we read in another line before each iteration of the foreach-loop.


Example. To begin, this program calls the File.ReadLines method in the foreach loop iteration block. The File.ReadLines method is only called once. Then the IEnumerable<string> is used to pull in more data.

Finally: The program successfully prints the data found in the file.txt file in the C directory.

C# program that uses File.ReadLines

using System;
using System.IO;

class Program
{
    static void Main()
    {
	// Read in lines from file.
	foreach (string line in File.ReadLines("c:\\file.txt"))
	{
	    Console.WriteLine("-- {0}", line);
	}
    }
}

Output

-- Line1
-- Line2
-- Line3
-- Another line.
-- Last line.


ReadAllLines. ReadLines and ReadAllLines are implemented differently. ReadLines uses an enumerator to read each line only as needed. On the other hand, ReadAllLines reads the entire file into memory and then returns an array of those lines.

If the file is large, the File.ReadLines method is useful because it will not need to keep all the data in memory at once. Also, if your program exits the loop early, the File.ReadLines is better because no further IO will be needed.

Thus: The File.ReadAllLines method is best if you need the entire array. An example of it is available.

File.ReadAllLines

Summary. The File.ReadLines method is similar to using the StreamReader type and the ReadLine method in a loop. It is a different interface to that functionality. With it, you can use a simple foreach loop to read in an entire file line-by-line.