O Bun fornece uma API para escrever incrementalmente num ficheiro. Isto é útil para escrever ficheiros grandes ou para escrever num ficheiro durante um longo período de tempo.
Chame .writer() num BunFile para obter uma instância FileSink. Esta instância pode ser usada para fazer buffer de dados de forma eficiente e "descarregá-los" periodicamente para o disco. Pode escrever e descarregar várias vezes.
ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer();
writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");
writer.flush();
// continue writing & flushingO método .write() pode aceitar strings ou dados binários.
ts
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();O FileSink também fará auto-flush quando o seu buffer interno estiver cheio. Pode configurar o tamanho do buffer com a opção highWaterMark.
ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MBQuando terminar de escrever no ficheiro, chame .end() para fazer auto-flush do buffer e fechar o ficheiro.
ts
writer.end();Documentação completa: FileSink.