Bun 提供了一個用於增量寫入文件的 API。這對於寫入大文件或在很長一段時間內寫入文件非常有用。
在 BunFile 上調用 .writer() 來獲取 FileSink 實例。此實例可用於有效地緩沖數據並定期"刷新"到磁盤。你可以多次寫入和刷新。
ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer();
writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");
writer.flush();
// 繼續寫入和刷新.write() 方法可以接受字符串或二進制數據。
ts
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();FileSink 還會在其內部緩沖區滿時自動刷新。你可以使用 highWaterMark 選項配置緩沖區大小。
ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MB當你完成寫入文件時,調用 .end() 來自動刷新緩沖區並關閉文件。
ts
writer.end();完整文檔:FileSink。