在Node.js中覆盖文件

我试图写入node.js中的文本文件 我做这个如下的方法:

fs.writeFile("persistence\\announce.txt", string, function (err) { if (err) { return console.log("Error writing file: " + err); } }); 

而string是一个variables。

这个函数总是在文件的开始处开始写,所以它会覆盖以前的内容。

在以下情况下我遇到问题:

旧内容:

 Hello Stackoverflow 

新写:

 Hi Stackoverflow 

现在下面的内容将在文件中:

 Hi stackoverflowlow 

新的内容比之前的内容短,所以旧内容的一部分仍然是持久的。

我的问题:

我需要做什么,以便在新写入之前将文件的旧内容完全删除?

您可以先尝试截断文件:

 fs.truncate("persistence\\announce.txt", 0, function() { fs.writeFile("persistence\\announce.txt", string, function (err) { if (err) { return console.log("Error writing file: " + err); } }); }); 

重命名旧文件并附加一个不存在的文件(创build一个新文件)。 这样你一方面有备份,另一方面有一个新的更新文件./config.json

 fs.renameSync('./config.json', './config.json.bak') fs.appendFileSync('./config.json', text) 

(同步版本,可能会抛出)