Bun fornisce un'API per scrivere in modo incrementale in un file. Questo è utile per scrivere file di grandi dimensioni o per scrivere in un file per un lungo periodo di tempo.
Chiama .writer() su un BunFile per recuperare un'istanza FileSink. Questa istanza può essere usata per bufferizzare dati in modo efficiente e periodicamente "scaricarli" su disco. Puoi scrivere e scaricare molte volte.
const file = Bun.file("/percorso/del/file.txt");
const writer = file.writer();
writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");
writer.flush();
// continua a scrivere e scaricareIl metodo .write() può accettare stringhe o dati binari.
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();Il FileSink eseguirà anche un auto-flush quando il suo buffer interno è pieno. Puoi configurare la dimensione del buffer con l'opzione highWaterMark.
const file = Bun.file("/percorso/del/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MBQuando hai finito di scrivere nel file, chiama .end() per eseguire automaticamente il flush del buffer e chiudere il file.
writer.end();Documentazione completa: FileSink.