运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

递增写入文件

Bun 提供了用于向文件递增写入的 API。适用于大文件,或需要在较长时间内持续向文件写入数据的场景。

在 BunFile 上调用 .writer() 以获取 FileSink 实例。FileSink 会缓冲数据。调用 .flush() 将缓冲区写入磁盘。你可以多次写入和刷新。

TypeScript
const file = Bun.file("/path/to/file.txt");
const writer = file.writer();

writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");

writer.flush();

// 继续写入和刷新

.write() 方法接受字符串或二进制数据。

TypeScript
writer.write("hello");
writer.write(Buffer.from("there"));
writer.write(new Uint8Array([0, 255, 128]));
writer.flush();

FileSink 还会在其内部缓冲区已满时自动刷新。


完成写入后,调用 .end() 刷新缓冲区并关闭文件。

TypeScript
writer.end();

完整文档:FileSink。