读取文件 (Bun.file())
Bun.file(path): BunFile
使用 Bun.file(path) 函数创建一个 BunFile 实例。BunFile 表示一个延迟加载的文件;初始化它不会从磁盘读取文件。
Blob 接口,因此内容可以以多种格式读取。
file:// URL 创建文件引用。
BunFile 可以指向磁盘上不存在文件的位置。
text/plain;charset=utf-8。通过向 Bun.file 传入第二个参数可以覆盖该类型。
stdin、stdout 和 stderr 作为 BunFile 实例暴露。
删除文件 (file.delete())
调用 .delete() 删除文件。
写入文件 (Bun.write())
Bun.write(destination, data): Promise<number>
Bun.write 是一个多功能工具,用于将各种类型的负载写入磁盘。
第一个参数是 destination,可以是以下任意类型:
string:文件系统上的路径。使用"path"模块进行路径操作。URL:file://描述符。BunFile:文件引用。
stringBlob(包括BunFile)ArrayBuffer或SharedArrayBufferTypedArray(如Uint8Array等)Response
查看系统调用
查看系统调用
stdout:
使用 FileSink 进行增量写入
Bun 提供了一个原生的增量写入文件 API,叫做 FileSink。从 BunFile 获取 FileSink 实例:
.write()。
.flush()。该方法会返回已刷新的字节数。
FileSink 达到其_高水位标记_时,缓冲区也会自动刷新;也就是说,当其内部缓冲区已满时会自动刷新。你可以配置此值。
bun 进程会一直保持运行,直到使用 .end() 显式关闭此 FileSink。如果不想使用此行为,可以对实例调用 "unref"。
目录操作
Bun 对node:fs 的实现速度很快。在 Bun 中使用 node:fs 处理目录。
读取目录(readdir)
在 Bun 中,使用node:fs 模块的 readdir 读取目录。
递归读取目录
使用readdir 并开启 recursive: true 递归读取目录。
创建目录(mkdir)
递归创建目录需使用node:fs 的 mkdir:
性能基准
以下是 Linux 下cat 命令的三行实现。
cat.ts
terminal
cat 的 2 倍。
