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 by www.bunjs.com.cn 編集