附加到已存在的文件nodejs?

时间:2012-08-16 08:32:33

标签: node.js logging append

我知道像How to append to a file in Node?

这样的问题

然而,那些不能满足我的需要。我所拥有的是一个文本文件,它在启动nodejs之前已经包含文本,然后我希望节点在我的文件末尾添加文本。

但是,使用上面链接的问题中的方法会覆盖我的文件内容。

我还发现我可以在start:number的选项中使用fs.createWriteStream,所以如果我想弄清楚我的旧文件结束的地方我可以用它来追加,但我怎么能算出来没有读出整个文件并计算其中的字符?

2 个答案:

答案 0 :(得分:1)

我还发现文档令人困惑,因为它没有告诉你如何实际设置该命令(或者你可能需要在追加之前读入文件)。

这是一个完整的脚本。填写您的文件名并运行它,它应该工作!这是脚本背后逻辑的video tutorial

var fs = require('fs');

function ReadAppend(file, appendFile){
  fs.readFile(appendFile, function (err, data) {
    if (err) throw err;
    console.log('File was read');

    fs.appendFile(file, data, function (err) {
      if (err) throw err;
      console.log('The "data to append" was appended to file!');

    });
  });
}
// edit this with your file names
file = 'name_of_main_file.csv';
appendFile = 'name_of_second_file_to_combine.csv';
ReadAppend(file, appendFile);

答案 1 :(得分:0)

使用a+标志添加并创建文件(如果不存在)。

使用\r\n作为换行符。

fs.writeFile('log.txt', 'Hello Node\r\n', { flag: "a+" }, (err) => {
  if (err) throw err;
  console.log('The file is created if not existing!!');
}); 

文档:https://nodejs.org/api/fs.html#fs_file_system_flags