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。