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 편집