Как читать файл построчно с помощью node.js?

Опубликовано: 1 Августа, 2021

Возможность построчно читать файл позволяет нам читать большие файлы, не сохраняя их полностью в памяти. Это полезно для экономии ресурсов и повышения эффективности приложения. Это позволяет нам искать необходимую информацию, и как только соответствующая информация найдена, мы можем остановить процесс поиска и предотвратить нежелательное использование памяти.

Мы достигнем цели с помощью модуля Readline и Line-Reader.

Метод 1. Использование модуля Readline: Readline - это собственный модуль Node.js, он был разработан специально для чтения содержимого построчно из любого читаемого потока. Его можно использовать для чтения данных из командной строки.
Поскольку модуль является собственным модулем Node.js, он не требует установки и может быть импортирован как

 const readline = require ('readline');

Поскольку модуль readline работает только с читаемыми потоками, нам нужно сначала создать читаемый поток с помощью модуля fs.

const file = readline.createInterface ({
    ввод: fs.createReadStream ('source_to_file'),
    вывод: process.stdout,
    терминал: ложь
});

Теперь послушайте событие линии на файловом объекте. Событие срабатывает всякий раз, когда из потока читается новая строка:

file.on ('строка', (строка) => {
    console.log (строка);
});

Пример:




// Importing the Required Modules
const fs = require( 'fs' );
const readline = require( 'readline' );
// Creating a readable stream from file
// readline module reads line by line
// but from a readable stream only.
const file = readline.createInterface({
input: fs.createReadStream( 'gfg.txt' ),
output: process.stdout,
terminal: false
});
// Printing the content of file line by
// line to console by listening on the
// line event which will triggered
// whenever a new line is read from
// the stream
file.on( 'line' , (line) => {
console.log(line);
});

Выход:

Метод 2: Использование модуля чтения строк. Модуль чтения строк - это модуль с открытым исходным кодом для построчного чтения файла в Node.js. Это не собственный модуль, поэтому вам нужно установить его с помощью npm (Node Package Manager), используя команду:

 npm install line-reader --save

Модуль чтения строк предоставляет метод eachLine (), который считывает файл построчно. У него была функция обратного вызова, которая имела два аргумента: содержимое строки и логическое значение, которое сохраняет, была ли прочитанная строка последней строкой файла.

const lineReader = require ('считыватель строк');

lineReader.eachLine ('исходный текст в файл', (строка, последняя) => {
    console.log (строка);
});

Пример:




// Importing required libraries
const lineReader = require( 'line-reader' );
// eachLine() method call on gfg.txt
// It got a callback function
// Printing content of file line by line
// on the console
lineReader.eachLine( 'gfg.txt' , (line, last) => {
console.log(line);
});

Выход: