It's interesting that the example code shown is so clunky. It uses try-finally to manually dispose the resource when the idiomatic way would be to wrap it in a using block:
using (var file2 = new StreamReader(file))
{
while ((line = file2.ReadLine()) != null)
Console.WriteLine(line);
}
It's possible this is a badly picked example but it shows one big downside of this -- the lack of discussion about the sample code that you would normally get at e.g. Stack Overflow or a blog.