# 文件与标准输出 File 副本共用游标和关闭状态。文件操作同步执行;异步流程用 blocking,不能在 pure 函数中调用。 ## dever.io.OpenResult 打开或新建文件的结果。 分支: - `Opened(file: dever.system.File)`:成功状态 - `error Failed(message: Text)`:失败原因 ## dever.io.ReadState 一次读取可短于请求长度;End 表示文件结束。 分支: - `Read(bytes: Bytes)`:成功状态 - `End`:成功状态 ## dever.io.ReadResult 显式捕获读取失败时保留 ReadState。 分支: - `Done(state: ReadState)`:成功状态 - `error Failed(message: Text)`:失败原因 ## dever.io.SystemReadResult 底层文件读取结果,在库内转换为 ReadState。 分支: - `Read(bytes: Bytes)`:成功状态 - `End`:成功状态 - `error Failed(message: Text)`:失败原因 ## dever.io.WriteResult 写入全部字节或返回失败。 分支: - `Done`:成功状态 - `error Failed(message: Text)`:失败原因 ## dever.io.CloseResult 关闭共享文件句柄或返回失败。关闭不承诺数据已落盘。 分支: - `Closed`:成功状态 - `error Failed(message: Text)`:失败原因 ## dever.io.ReadEvent 流每次产生一个数据块;终止错误只产生一次,然后结束。 分支: - `Chunk(bytes: Bytes)`:读取的数据 - `error Failed(message: Text)`:读取失败 ## dever.io.ReadStreamResult 捕获流创建失败,已创建的流仍按需读取。 分支: - `Streaming(stream: Stream)`:共享游标的同步流 - `error Failed(message: Text)`:创建失败 ## dever.io.println 写入文本及换行;标准输出失败为带源码位置的 Fault。 ## dever.io.open 以只读方式打开现有文件。失败默认沿调用链传播。 ## dever.io.create 新建可读写文件;路径已经存在则失败,绝不截断现有文件。 ## dever.io.opened 成功时取得共享文件资源,失败时保留 OpenResult 错误身份。 ## dever.io.read 读取最多 limit 字节并推进共享游标;limit 必须为正,EOF 返回 End。 ## dever.io.readState 把底层读取结果转换为 ReadState;失败时传播 ReadResult.Failed。 ## dever.io.write 写入全部字节;失败使用 WriteResult 传播,空字节同样验证文件是否已关闭。 ## dever.io.wrote 成功时无输出,失败时保留 WriteResult 身份。 ## dever.io.close 关闭底层文件使所有别名失效;重复关闭失败。最后一个别名离开作用域也会释放文件。 ## dever.io.closed 成功时无输出,失败时保留 CloseResult 身份。 ## dever.io.chunks 先验证正数 limit 和文件未关闭,再创建按需读取的同步流。close(stream) 幂等,释放源别名但不关闭外部文件别名。 ## dever.io.readStream 成功时返回共享流,失败时保留创建错误身份。