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