我正在尝试编写一个读取文件的函数,当它找到一个特定的行时,它会删除它下面的所有内容,然后它会附加另一组行。我设法读取文件并找到我需要的字符串:
function read() {
lineReader.on('line', function (line) {
console.log('Line from file: ' + line)
if(line.trim() === 'Examples:'){
console.log('Found what I needed, delete everything below this line');
}
});
}
我无法看到的是如何删除此行下方的所有内容,然后附加我需要的文本。我是JS
和Node.js
的新手。
答案 0 :(得分:1)
您可以通过同时打开文件写入流来完成此操作。
在lineReader事件处理程序中,将“Example”之前的所有行放入单独的文件流中。当示例出现时,只需将您想要的一组行追加到第二个文件流中,然后关闭lineReader。
所以添加这样的东西:
// before the code
var writer = fs.createWriteStream('new.txt');
// load custom lines from customLines.txt
var customLines = fs.readFileSync('customLines.txt');
// in the on('line') callback:
writer.write(line + "\n");
// if 'Examples:' was found:
writer.write(customLines);
writer.end();
lineReader.close();