Bun 提供了一個 API 用於逐步寫入檔案。這對於寫入大型檔案或長時間寫入檔案非常有用。
在 BunFile
上調用 .writer()
以檢索 FileSink
實例。此實例可用於有效地緩衝數據並定期「刷新」到磁碟。您可以多次寫入和刷新。
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 & flushing
.write()
方法可以接受字串或二進制資料。
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();
當 FileSink
的內部緩衝區滿時,它也會自動刷新。您可以使用 highWaterMark
選項配置緩衝區大小。
const file = Bun.file("/path/to/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MB
當您完成寫入檔案時,調用 .end()
以自動刷新緩衝區並關閉檔案。
writer.end();
完整文件:FileSink。