Freitag, Februar 21, 2020

Überschreiben Sie eine Datei in Node.js

Ich versuche zu schreiben in eine text-Datei in node.js.
Im das tun dies auf folgende Weise:

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

in der Erwägung, dass string eine variable ist.

Diese Funktion startet es schreiben immer am Anfang einer Datei, also es überschreibt den vorherigen Inhalt.

Ich habe ein problem in dem folgenden Fall:

Alter Inhalt:

Hello Stackoverflow

neuen schreiben:

Hi Stackoverflow

Nun den folgenden Inhalt in die Datei:

Hi stackoverflowlow

Dem neuen schreiben war kürzer als die vorherigen Inhalte, so dass ein Teil der alten Inhalte wird noch hartnäckig.

Meine Frage:

Was muss ich tun, damit der alte Inhalt einer Datei wird vollständig entfernt, bevor das neue schreiben ist?

  • werfen Sie einen Blick auf die offizielle Dokumentation, Sie finden etwas für Sie sicher, writeStream oder somehting wie das, oder irgendeine Art von option. nodejs.org/api

2 Kommentare

  1. 12

    Können Sie versuchen, kürzen Sie zuerst die Datei:

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

    Umbenennen der alten Datei Anhängen, um damit eine nicht vorhandene Datei (erstellen einer neuen). Auf diese Weise haben Sie auf der einen Seite ein backup und auf der anderen Seite eine frisch aktualisierte Datei ./config.json:

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

    (sync-version, vielleicht werfen)

Kostenlose Online-Tests