Null reference in ByteReader (This place and a bit below in code)
string s = ReadLine(false);
s = s.Replace("\\n", "\n"); <--------- Null reference
if (s == null) return null;
Should it be like this?
string s = ReadLine(false);
if (s == null) return null;
s = s.Replace("\\n", "\n");