Фон
Я пытаюсь построчно прочитать файл размером в несколько ГБ.Я хочу обработать каждую строку и после этого записать ее в файл.Я не хочу (и не могу) поместить все в память.
Важно, чтобы порядок, в котором я читаю строку, был порядком, в котором я записывал ее в файл.
Код
Чтобы добиться этого, я попытался использовать Node.js Интерфейс Readline
const fs = require( "fs" ),
readline = require( "readline" );
const readStream = fs.createReadStream( "./logs/report.csv" );
const writeStream = fs.createWriteStream( "./logs/out.csv", { encoding: "utf8"} );
const rl = readline.createInterface({
input: readStream,
output: writeStream,
terminal: false,
historySize: 0
});
rl.on( "line", function(line) {
//Do your stuff ...
const transformedLine = line.toUpperCase();
console.log(transformedLine);
//Then write to outstream
rl.write(transformedLine );
});
Проблема
Как видите, я пытаюсь прочитать строку, разобрать ее и записать в файл с именем out.csv
.
Проблема в том, что выходной файл всегда пуст.Ничто никогда не написано в это.
Я прочитал все методы, события и опции, но явно что-то упустил.
Вопрос
Почему этот код не записывается в файл?