使用JS和Node在文件上读写

时间:2017-10-25 15:18:45

标签: javascript node.js

我正在尝试编写一个读取文件的函数,当它找到一个特定的行时,它会删除它下面的所有内容,然后它会附加另一组行。我设法读取文件并找到我需要的字符串:

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');
        }
    });
}

我无法看到的是如何删除此行下方的所有内容,然后附加我需要的文本。我是JSNode.js的新手。

1 个答案:

答案 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();