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。