在Node.js中覆盖文件

Jak*_*ter 10 javascript node.js

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

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

而string是一个变量.

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

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

旧内容:

Hello Stackoverflow
Run Code Online (Sandbox Code Playgroud)

新写:

Hi Stackoverflow
Run Code Online (Sandbox Code Playgroud)

现在,以下内容将在文件中:

Hi stackoverflowlow
Run Code Online (Sandbox Code Playgroud)

新写入比之前的内容短,因此旧内容的一部分仍然是持久的.

我的问题:

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

Gar*_*all 12

您可以先尝试截断文件:

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