【问题标题】:Write in a text file without overwriting in fs node js写入文本文件而不覆盖 fs 节点 js
【发布时间】:2016-07-08 00:26:19
【问题描述】:

如何在文件中添加文本但不覆盖旧文本。我使用模块 fs (node js)

我试过这段代码,但它不起作用。

fs.writeFileSync("file.txt", 'Text', "UTF-8",{'flags': 'w+'});

任何建议,谢谢。

【问题讨论】:

标签: javascript node.js


【解决方案1】:

在此处检查标志:http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback - 您当前正在使用 w+ 其中:

'w+' - 打开文件进行读写。文件被创建(如果不存在)或被截断(如果存在)。

您应该改用a

'a' - 打开文件进行追加。如果文件不存在,则创建该文件。

'ax' - 与 'a' 类似,但以独占模式打开文件。

'a+' - 打开文件进行读取和附加。如果文件不存在,则创建该文件。

'ax+' - 类似于 'a+' 但以独占模式打开文件。

【讨论】:

  • 感谢您的回答,我找到了解决方案,我使用此代码:fs.appendFileSync("file.txt", 'My Text \n', "UTF-8",{'flags': 'a+'});
  • @user2513289 如果这个答案回答了你的问题,你应该标记它
  • 这似乎没有解释如何避免写入已经存在的文件......?
  • 注意:在 Linux 上,当文件以附加模式打开时,位置写入不起作用。内核忽略位置参数并始终将数据附加到文件末尾。
【解决方案2】:

使用 fs.appendFile,它只会追加新信息!

fs.appendFile("file.txt", 'Text',function(err){
if(err) throw err;
console.log('IS WRITTEN')
});

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2020-03-28
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多