public string ReadString(Encoding encoding) { if (encoding == null) throw new ArgumentNullException ("encoding"); int len = ReadInt32(); if (len == -1) return null; byte[] data = ReadBytes (len); return encoding.GetString (data, 0, len); }