2013-07-11 9 views

risposta

10

Aprire il file in modalità di accodamento utilizzando il a+ bandiera

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

Oppure utilizzare un posizionale write. Per essere in grado di aggiungere alla fine del file, utilizzare fs.appendFile:

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

Scrivici l'inizio di un file:

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

EDIT:

Credo che ci non è un chiamata a metodo singolo per quello Ma puoi copiare il contenuto del file, scrivere nuovi dati e aggiungere i dati copiati.

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); 

Si prega di notare che è necessario utilizzare le versioni asincrone di questi metodi, se queste operazioni non vengono eseguite solo una volta durante l'inizializzazione, come faranno bloccano il ciclo degli eventi.

+0

c.P.u1 grazie per la risposta, ma quello che voglio è inserire all'inizio del file non aggiunto alla fine del file –

+0

fs.write (fd, buf, 0, buf.length, 0); sovrascriverà il testo originale all'interno del file anche con 'a +' –

+0

@DevPiplay, mi dispiace, ho frainteso la tua domanda. Si prega di controllare la risposta aggiornata. –

1

Con file di piccole dimensioni si può fare in questo modo:

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')); 

Spero che sarebbe stato utile per qualcuno!

Problemi correlati