Я пытаюсь прочитать файл в кодировке UTF8 (.torrent). В файле есть раздел «кусочки». Сразу после этого - длина текста, содержащего последовательность хэшей SHA1. Файл сообщает длину (скажем, 130100) для чтения, но при чтении я заканчиваю тем, что прошёл EOF.
Я не уверен, почему это происходит. Файлы хорошие (я проверил их на существующих торрент-клиентах и попробовал несколько из них с единообразными результатами), и я читаю их так:
string contents = string.Empty;
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)
{
using (StreamReader reader = new StreamReader(fs, Encoding.UTF8))
{
contents = reader.ReadToEnd();
}
}
parse(contents);
Однако это, очевидно, не работает. Я неправильно читаю файл или неправильно храню его в строке перед тем, как попытаться разобрать его? Кажется, что это только ошибка, когда он читает символы вне нормального диапазона читаемых строк.