È meglio non aprire un file a meno che non ci si scriva effettivamente. È possibile scrivere alcune funzioni wrapper per aprire e scrivere per ritardare l'apertura del file finché non è necessaria una scrittura.
var fd;
function open() {
if (fd) {
return;
}
fd = fs.open(filePath, 'w');
}
function write(buffer) {
if (!fd) {
open();
fs.writeFile(fd, buffer);
} else {
fs.write(fd, buffer);
}
}
write('open file and write');
write('write to already opened file');
Durante l'apertura, utilizzare fs.open con il flag 'w', che significa che il file viene creato (se non esiste) o troncato (se esiste).
Un altro modo è per la funzione write() di chiamare fs.writeFile quando si scrive sul file per la prima volta, questo sovrascrive il contenuto esistente del file e chiama fs.write nelle scritture successive da aggiungere.
In termini reali ci dovrebbe essere poca differenza di prestazioni tra l'uso di writeFile() e write(), ma consente di evitare di verificare se il file esiste, eliminarlo se lo fa e creare un nuovo file.
Suppongo che tu abbia solo un processo che accede a questo file alla volta.
fonte
2016-05-12 03:54:02
'fs.open()' con i flag ''w'' o ''' w + ''creerà anche/tronca il file. Non è chiaro quale domanda tu stia davvero chiedendo. – jfriend00
'fs.open()' con 'w +' sembra essere il modo: * 'w +' - Apri il file per leggere e scrivere. Il file viene creato (se non esiste) o troncato (se esiste). * – Shanoor
ok, fs.open() potrebbe essere quello, puoi aggiungere una risposta? –