Bun fournit une API pour écrire de manière incrémentale dans un fichier. Ceci est utile pour écrire de gros fichiers, ou pour écrire dans un fichier sur une longue période.
Appelez .writer() sur un BunFile pour récupérer une instance FileSink. Cette instance peut être utilisée pour mettre en tampon efficacement les données et les "flusher" périodiquement sur le disque. Vous pouvez écrire et flusher plusieurs fois.
const file = Bun.file("/chemin/vers/fichier.txt");
const writer = file.writer();
writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");
writer.flush();
// continuer à écrire et flusherLa méthode .write() peut accepter des chaînes ou des données binaires.
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();Le FileSink effectuera également un auto-flush lorsque son tampon interne sera plein. Vous pouvez configurer la taille du tampon avec l'option highWaterMark.
const file = Bun.file("/chemin/vers/fichier.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MBLorsque vous avez terminé d'écrire dans le fichier, appelez .end() pour auto-flusher le tampon et fermer le fichier.
writer.end();Documentation complète : FileSink.