如何在node.js中的文件的每一行末尾添加文本?

时间:2017-09-16 20:29:38

标签: javascript node.js

我有一个名为Names.txt的文件;在这里面是一个人的名字列表,由一行分隔。 例如;

Joe
Alex
Patricia
Emma

如何在node.js中编辑文件,以便有一个":lastname"添加到每一行?

2 个答案:

答案 0 :(得分:1)

你得到文件,分成几行,修改这些行,然后重新写回文件

fs.readFile('/path/to/Names.txt', function(err, result) {

    if (err) // handle errors

    var lines = result.split(/(\n|\r\n)/);

    var new_content = lines.map(function(line) {
        return line + ' lastname';
    }).join("\r\n")

    fs.writeFile('/path/to/Names.txt', new_content, 'utf8', function(err) {
        if (err) // handle errors
        console.log('The file has been saved!');
    });
});

这是它的主旨。当然,您可以保留firstnames和lastnames的映射,并插入相应的姓氏,或者执行各种其他操作,但是您仍然必须经历相同的过程,获取,拆分换行,修改,连接在一起并保存。

答案 1 :(得分:0)

在前一个答案的基础上,您将通过在文件路径之后将其作为参数实现来添加UTF8编码,它看起来像这样...

fs.readFile('/path/Names.txt', 'utf8', function(err, res) {
  if (err) throw err;

  var lines = res.split(/\n/);
  var new_content = lines.map(function(line) {
    return line + ' lastname';
  }).join('\n');

  fs.writeFile('/path/Names.txt', new_content, 'utf8', function(err) {
    if (err) throw err;
    console.log('The file has been saved!');
  });
});

这应该解决你从read命令返回缓冲区的问题。