Base types, Collections, Diagnostics, IO, RegEx…
Reading from a FileStream: Create a suitable buffer size – the default internal buffer size is 4k for a FileStream – and read until the returned value is 0, which indicates the end of the stream. Remember to work with the returned value size when processing the data. Although our Stream Read implementations generally try hard to return the requested number of bytes, its not guaranteed and the Read contract specifies that you should only work with the returned value.
String fileName =...;
using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
int size = 4096;
Byte[] bits = new Byte[size];
int count;
while ((count = stream.Read(bits, 0, size)) != 0)
//bits buffer has valid data from 0 to count-1 that can be processed here
...
}
Reading from a text file: The StreamReader has some convenient methods to read from it, where ReadLine() is the most popular;
String fileName =...
using (StreamReader reader = new StreamReader(fileName))
String line;
while ((line = reader.ReadLine()) != null)
//process the line
StreamReader also has a method to read the whole file, ReadToEnd(), but it has some gotchas which the documentation covers well. You can also use Read(Char[], int, int) similar to FileStream.Read method above if you want to work with characters.