The using provides a convenient syntax that ensures the correct use of IDisposable objects. It is compiled into:
StreamReader sr = new StreamReader(path);
try
{
while (sr.Peek() >= 0)
Console.WriteLine(sr.ReadLine());
} finally
{
sr.Dispose();
}
As documented on MSDN