2012-01-07 14 views

risposta

15

fs.open e fs.write sono per l'accesso a basso livello, simile a quello che si ottiene quando si codice in C. fs.open apre un file e fs.write scrive ad esso.

A fs.WriteStream è uno stream che apre il file in background e accoda le code finché il file non è pronto. Inoltre, poiché implementa l'API del flusso, puoi utilizzarlo in un modo più generico, proprio come un flusso di rete o così. Ad esempio vuoi questo quando un utente carica un file sul tuo server - accetta il flusso HTTP POST in entrata, pipe() allo WriteStream. Molto facile.

fs.writeFile è un metodo di alto livello per la scrittura di un gruppo di dati in RAM su un file. Non supporta lo streaming o così, quindi è una cattiva idea per file di grandi dimensioni o materiale critico per le prestazioni. Lo vorrai scrivendo piccoli file JSON nel tuo codice.

+0

Grazie mille per il chiarimento! – Yijinsei

+0

Quindi 'WriteStream' sarebbe più veloce persino di' write'? – 3zzy

+0

@ 3zzy I trasferimenti di dati in streaming sono intrinsecamente più lenti, in quanto vengono gestiti in blocchi, tuttavia, sono compatibili con RAM (perché non è necessario l'intero file in memoria). – Tobiq

Problemi correlati