Skip to content

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.

ts
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 scaricare

Il metodo .write() può accettare stringhe o dati binari.

ts
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.

ts
const file = Bun.file("/percorso/del/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MB

Quando hai finito di scrivere nel file, chiama .end() per eseguire automaticamente il flush del buffer e chiudere il file.

ts
writer.end();

Documentazione completa: FileSink.

Bun a cura di www.bunjs.com.cn