Skip to content

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

Bun學習網由www.bunjs.com.cn整理維護