У меня возникла проблема чтения одиночной формы большого файла, закодированного в UTF-8. Строки в файле имеют постоянную длину.Как читать определенную строку из большого файла?
Файл в среднем имеет 300 тыс. Строк. Время является основным ограничением, поэтому я хочу сделать это как можно быстрее.
Я попытался LinQ
File.ReadLines("file.txt").Skip(noOfLines).Take(1).First();
Но время не достаточно удовлетворительным.
Моя самая большая надежда заключалась в использовании потока и установлении его возможности для желаемого запуска линии, но проблема в том, что размеры строк в байтах различаются.
Любые идеи, как это сделать?
Если каждая строка имеет фиксированную длину, вы можете просто вычислить смещение и читать оттуда доступа к l ine с FileStream, например. http://stackoverflow.com/a/8678918/246342 –
@AlexK .: «используя поток и установив его доступ к желаемому началу строки, но проблема в том, что размеры строк в байтах отличаются« –
. Вы можете упростить свой запрос : 'File.ReadLines (« file.txt »). ElementAtOrDefault (noOfLines + 1)' –