Как обработать большой файл не загружая его целиком в память?

Middle
352 просмотров
AFK Offer AI

Используй Streams: fs.createReadStream() возвращает Readable stream, который читает файл по частям (default highWaterMark 64KB). Дальше pipe() в обработчик или Transform stream. Например для CSV: createReadStream → readline.createInterface() → построчная обработка. Это позволяет обрабатывать файлы в гигабайты при потреблении памяти в сотни килобайт. Для записи результата — fs.createWriteStream().

Следующий вопрос

Реализуй Transform Stream который переводит CSV строки в JSON объекты