public override string ReadLine()
{
var builder = new StringBuilder();
while (true)
{
var number = Read();
switch (number)
{
case -1:
if (builder.Length > 0)
{
return builder.ToString();
}
return null;
case 13:
case 10:
if ((number == 13) && (Peek() == 10))
{
Read();
}
return builder.ToString();
}
builder.Append((char) number);
}
}