Node.js Readline.write创建空白文件

Node.js Readline.write创建空白文件,node.js,Node.js,试图从一个文件写入另一个文件。当我使用控制台日志时,我可以看到.write被一致地调用。已创建转换的文件,但当我打开该文件时,该文件为空。控制台日志显示我可以看到正确的行数据。我做错了什么 下面的代码片段: var fileRebuilder = readline.createInterface({ input: fs.createReadStream('./' + directory + file), output: fs.createWriteStream('./' + di

试图从一个文件写入另一个文件。当我使用控制台日志时,我可以看到.write被一致地调用。已创建转换的文件,但当我打开该文件时,该文件为空。控制台日志显示我可以看到正确的行数据。我做错了什么

下面的代码片段:

var fileRebuilder = readline.createInterface({
    input: fs.createReadStream('./' + directory + file),
    output: fs.createWriteStream('./' + directory + 'Converted' + file),
});
var lineRead = 0;
fileRebuilder.on('line', function (line) {
    lineRead++;
    if (linesForRemoval.indexOf(lineRead) > -1) {
    } else {
        fileRebuilder.write(line);
    }
}).on('close', function () {
    fileRebuilder.close();
});
您需要:

fileRebuilder.output.write(line + "\n");
工作示例:

const readline = require('readline');
const fs = require('fs');
function FileRebuilder(directory,file,linesForRemoval){
  const fileRebuilder = readline.createInterface({
      input: fs.createReadStream(directory + '/' + file),
      output: fs.createWriteStream(directory + '/converted-' + file),
  });
  console.log("[fileRebuilder]","start");
  var lineRead = 0;
  fileRebuilder.on('line', function (line) {
      lineRead++;
      if (linesForRemoval.indexOf(lineRead) > -1) {
        console.log("@[ line",lineRead,"]","removing!");
      } else {
        console.log("@[ line",lineRead,"]","writing!");
        fileRebuilder.output.write(line + "\n");
      }
  }).on('close', function () {
    console.log("[fileRebuilder]","closed");
    fileRebuilder.close();
  });
}

 FileRebuilder(__dirname,'sample.txt',[4,8]);