SuperAPI AI 工具集

bun-file-io

通用与其它

查看项目

更新于 10-15 22:33

技能介绍

用途:该技能用于指导在 Bun 运行时中完成文件读写与目录操作,包括读取内容、写入数据、流式处理、目录管理、glob 匹配与元数据查询。

主要能力:

  • 读取:Bun.file() 创建文件引用(惰性,不立即读取),可查看 size、type、name,并用 await file.exists() 判断存在;通过 text、json、arrayBuffer、bytes、stream 读取内容。也可用 import ... with { type: "json" } 等导入属性。
  • 写入:Bun.write() 支持写入字符串、JSON、二进制、Response,以及从另一个文件高效复制;可传 mode 选项设置权限。
  • 追加:使用 file.writer() 写入并 flush、end,或用 node:fs/promises 的 appendFile。
  • 流:读取用 file.stream() 与 getReader() 逐块处理;写入用 file.writer();可结合 TransformStream 做转换,或将 HTTP 响应直接写入文件。
  • 目录:通过 node:fs/promises 与 node:fs 的 readdir、mkdir、rmdir、existsSync 等完成列出、创建、删除与存在性检查。
  • Glob:使用 Bun.Glob 扫描匹配路径,支持 cwd、dot、absolute、onlyFiles 选项,并可 match 测试路径。
  • 元数据与路径:使用 stat、lstat 读取大小、类型、时间与权限;使用 node:path 的 join、dirname、basename、extname、resolve,以及 import.meta.dir、file、path。

使用方式:以 Bun 环境执行 JavaScript/TypeScript,按需调用上述 API;常见模式包括读取 JSON 配置、递归复制目录、监听文件变化、创建临时目录与文件。

适用场景:Bun 项目中的配置文件读取、日志追加、大文件流式处理、下载写入、目录遍历与 glob 批量匹配等。

限制与错误:需注意 ENOENT(文件不存在)、EACCES(权限不足)、EISDIR(目标是目录)、EEXIST(已存在,mkdir 可用 recursive: true)等常见错误;资料未提供收费、平台限制或性能基准等细节。