覆盖节点.js中的文件

Overwrite a File in Node.js

本文关键字:文件 js 节点 覆盖      更新时间:2023-09-26

我试图写入node.js中的文本文件。我通过以下方式执行此操作:

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

而字符串是一个变量。

此函数将始终在文件的开头开始写入,因此它将覆盖之前的内容。

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

旧内容:

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

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

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

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