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