Вопрос проверяет понимание работы с потоками и буферизованным чтением для обработки больших файлов без загрузки их целиком в оперативную память.
При работе с большими файлами (например, логи, CSV, JSON) загрузка всего содержимого в память может привести к переполнению памяти или замедлению приложения. Вместо этого используется потоковое чтение, когда данные читаются частями (чанками) и обрабатываются по мере поступления.
Модуль readline позволяет читать файл построчно, используя поток ввода. Он автоматически разбивает данные по символам новой строки и вызывает колбэк для каждой строки.
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('bigfile.txt'),
crlfDelay: Infinity
});
rl.on('line', (line) => {
console.log('Строка:', line);
// Обработка строки без загрузки всего файла
});
rl.on('close', () => {
console.log('Файл прочитан полностью');
});fs.createReadStream создает поток чтения, который выдает данные чанками (по умолчанию 64 КБ).readline буферизует чанки и ищет разделители строк (\n, \r\n).line.Этот подход полезен для обработки логов, импорта данных в БД, анализа CSV-файлов, парсинга больших JSON-массивов (с использованием потоковых парсеров).
Вывод: Потоковое чтение построчно — стандартный способ работы с большими файлами в Node.js, позволяющий экономить память и обрабатывать данные любого объема без риска переполнения.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на Python Developer в телеграм