Bun proporciona una API para escribir incrementalmente en un archivo. Esto es útil para escribir archivos grandes o para escribir en un archivo durante un largo período de tiempo.
Llama a .writer() en un BunFile para obtener una instancia FileSink. Esta instancia puede usarse para almacenar datos en búfer de manera eficiente y "vaciarlos" periódicamente en disco. Puedes escribir y vaciar muchas veces.
const file = Bun.file("/path/to/file.txt");
const writer = file.writer();
writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");
writer.flush();
// continuar escribiendo y vaciandoEl método .write() puede aceptar cadenas o datos binarios.
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();El FileSink también se vaciará automáticamente cuando su búfer interno esté lleno. Puedes configurar el tamaño del búfer con la opción highWaterMark.
const file = Bun.file("/path/to/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MBCuando termines de escribir en el archivo, llama a .end() para vaciar automáticamente el búfer y cerrar el archivo.
writer.end();Documentación completa: FileSink.