Otwórz plik w trybie dopisywania pomocą a+
flagę
var fd = fs.openSync('file', 'a+');
lub użyć pozycyjną write
. Aby móc dołączyć do końca pliku, użyj fs.appendFile
:
fs.appendFile(fd, buf, err => {
//
});
napisać do początku pliku:
fs.write(fd, buf, 0, buf.length, 0);
EDIT:
Chyba nie ma jedna metoda wymaga tego. Ale możesz skopiować zawartość pliku, napisać nowe dane i dołączyć skopiowane dane.
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);
Należy pamiętać, że należy użyć asynchroniczne wersje tych metod, jeżeli czynności te nie są wykonywane tylko raz podczas inicjalizacji, jak oni blokują pętlę zdarzeń.
cześć c.P.u1 dziękuję za odpowiedź, ale to, czego chcę, to wstaw do początku pliku, nie dołączaj do końca pliku –
fs.write (fd, buf, 0, buf.length, 0); nadpisze oryginalny tekst wewnątrz pliku nawet z 'a +' –
@DevPiplay, przepraszam, źle zrozumiałem twoje pytanie. Sprawdź zaktualizowaną odpowiedź. –