Я анализирую очень большой файл записей (по одной на строку, каждая разной длины), и я хотел бы отслеживать количество прочитанных байтов в файле, чтобы я мог восстановить в событие сбоя.
Я написал следующее:
using (TextReader myTextReader = CreateTextReader())
{
string record = myTextReader.ReadLine();
bytesRead += record.Length;
ParseRecord(record);
}
Однако это не работает, поскольку ReadLine()
удаляет все символы CR / LF в строке. Кроме того, строка может заканчиваться символами CR, LF или CRLF, что означает, что я не могу просто добавить 1 к bytesRead
.
Есть ли простой способ получить фактическую длину строки, или я пишу свой собственный метод ReadLine()
в терминах гранулярных операций Read()
?