FileEntity
FileEntity 类提供了文件级的读写操作接口,用于在 HttpServer 或其他脚本环境中直接读取、写入、定位和关闭文件。
它支持以多种模式(只读、只写、读写、追加等)打开文件,并能配合 HttpResponse 直接返回文件内容给客户端。
概述
FileEntity 允许你在脚本中对文件执行以下操作:
- 打开文件进行读取、写入或读写;
- 按偏移量定位文件读取位置;
- 从文件中读取或写入指定大小的数据;
- 在使用完成后关闭文件;
- 支持以二进制流方式处理文件内容;
- 可直接作为
HttpResponse.raw()的响应体返回。
实例属性
path: string
文件路径(只读属性),表示该 FileEntity 对应的本地文件路径。
示例:
实例方法
seek(offset: number): boolean
移动文件指针到指定的偏移位置。 偏移量以字节为单位,返回值表示是否定位成功。
参数:
返回值:
true:定位成功;false:定位失败。
示例:
read(size: number): Data
从当前文件指针位置开始读取指定字节数的数据。
读取到的内容以 Data 对象返回。
参数:
返回值:
Data:包含所读取的文件数据。
示例:
write(data: Data): void
将指定的 Data 写入到文件的当前位置。
参数:
异常: 如果文件未以写模式打开或写入失败,将抛出异常。
示例:
close(): void
关闭文件并释放资源。
关闭后不应再调用 read() 或 write()。
示例:
静态方法
static openForReading(path: string): FileEntity
以只读模式打开文件。 如果文件不存在或无法读取,将抛出异常。
参数:
示例:
static openNewForWriting(path: string): FileEntity
以写入模式打开文件,若文件已存在会被覆盖。 适合用于创建新文件或清空原文件内容。
示例:
static openForMode(path: string, mode: string): FileEntity
以指定模式打开文件。
支持的模式遵循标准 POSIX 文件模式,但建议使用带有二进制标志的形式(例如 "rb", "r+b"),以确保跨平台兼容性,因为该接口底层以二进制方式读写文件。
参数:
💡 建议: 优先使用带
b后缀的模式(如"rb","r+b"等),因为FileEntity的底层接口以二进制流方式处理数据,这样可避免在不同平台上出现编码或换行符差异问题。
示例:
在 HttpResponse 中使用文件
FileEntity 可直接作为 HttpResponse.raw() 的响应体,实现文件下载或静态内容响应。
示例:
客户端访问 /download 时将直接下载该文件。
