2013-07-11 5 views

Antwort

10

Öffnen Sie die Datei im Append-Modus die a+ Flagge

var fd = fs.openSync('file', 'a+'); 

Oder verwenden Sie einen Positions write verwenden. Um der Lage sein, das Ende der Datei anzuhängen, verwenden fs.appendFile:

fs.appendFile(fd, buf, err => { 
    // 
}); 

Schreiben auf den Anfang einer Datei:

fs.write(fd, buf, 0, buf.length, 0); 

EDIT:

Ich denke, es ist kein Single-Methode-Aufruf dafür. Sie können jedoch den Inhalt der Datei kopieren, neue Daten schreiben und die kopierten Daten anhängen.

var data = fs.readFileSync(file); //read existing contents into data 
var fd = fs.openSync(file, 'w+'); 
var buffer = new Buffer('New text'); 

fs.writeSync(fd, buffer, 0, buffer.length, 0); //write new data 
fs.writeSync(fd, data, 0, data.length, buffer.length); //append old data 
// or fs.appendFile(fd, data); 
fs.close(fd); 

Bitte beachten Sie, dass Sie die asynchronen Versionen dieser Methoden verwenden müssen, wenn diese Operationen nicht nur einmal während der Initialisierung durchgeführt werden, da sie die Ereignisschleife blockiert werden.

+0

Hallo c.P.u1 danke für Ihre Antwort, aber was ich will, ist am Anfang der Datei einfügen nicht am Ende der Datei anfügen –

+0

fs.write (fd, buf, 0, buf.length, 0); überschreibt den Originaltext in der Datei sogar mit 'a +' –

+0

@DevPiplay, sorry, ich habe Ihre Frage missverstanden. Bitte überprüfen Sie die aktualisierte Antwort. –

1

Mit kleinen Dateien können Sie es wie folgt tun:

let logPath = path.join(appPath, 'deploy.log'); 
let logRows = fs.readFileSync(logPath).toString().split('\n'); 

logRows.unshift('Your string here'); 
fs.writeFileSync(logPath, logRows.join('\n')); 

Hoffe, dass es für jemanden nützlich sein würde!

Verwandte Themen