Я пытаюсь извлечь одну строку файла, учитывая, что я знаю имя пути и номер строки, в идеале я хотел бы сделать это , не читая больше файла, чем это необходимо.
Для целей, которые я использую здесь, не имеет значения, является ли это асинхронным или синхронизируемым.
Моя текущая (плохая) реализация выглядит следующим образом:
function get_line(filename, line_no, callback) {
line_no = parseInt(line_no);
var data = fs.readFileSync(filename, 'utf8');
var lines = data.split("\n");
for (var l in lines) {
if (l == line_no - 1) {
callback(null, lines[l].trim());
return;
}
}
throw new Error('File end reached without finding line');
}
Я пытался что-то сделать с помощью createReadStream, но события данных никогда не срабатывали. Может ли кто-либо предоставить прямое решение этой проблемы или указать мне на какую-то документацию по взаимодействию с файловой системой NodeJS, которая немного более ориентирована на пример, чем стандартные документы API библиотеки?