FileSystemManager.writeSync
基础库 3.74.0 开始支持本方法,这是一个同步方法。
写入文件
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
相关教程 | 无 |
语法
FileSystemManager.writeSync(params)
参数说明
params 类型说明
object 类型,属性如下:
属性名 | 类型 | 默认值 | 必 填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
length | number | 否 | 只在 data 类型是 ArrayBuffer 时有效,指定要写入的字节数,默认为 ArrayBuffer 从0开始偏移 offset 个字节后剩余的字节数 | 3.73.0 | |
position | number | 否 | 指定文件开头的偏移量,即数据要被写入的位置。当 position 不传或者传入非 Number 类型的值时,数据会被写入当前指针所在位置。 | 3.73.0 | |
data | string | Arraybuffer | 是 | 写入的内容,类型为 String 或 ArrayBuffer | 3.73.0 | |
fd | string | 是 | 文件描述符。fd 通过 FileSystemManager.open 或 FileSystemManager.openSync 接口获得 | 3.73.0 | |
encoding | enum | utf8 | 否 | 只在 data 类型是 String 时有效,指定写入文件的字符编码,默认为 utf8 | 3.73.0 |
offset | number | 0 | 否 | 只在 data 类型是 ArrayBuffer 时有效,决定 ArrayBuffer 中要被写入的部位,即 ArrayBuffer 中的索引,默认 0 | 3.73.0 |
encoding 的合法值
值 | 说明 | 最低支持版本 |
---|---|---|
ascii | ascii | 3.73.0 |
base64 | base64 | 3.73.0 |
binary | binary | 3.73.0 |
hex | hex | 3.73.0 |
ucs2 | 以小端序读取 | 3.73.0 |
ucs-2 | 以小端序读取 | 3.73.0 |
utf16le | 以小端序读取 | 3.73.0 |
utf-16le | 以小端序读取 | 3.73.0 |
utf-8 | utf-8 | 3.73.0 |
utf8 | utf8 | 3.73.0 |
latin1 | latin1 | 3.73.0 |
返回值
返回值为 object 类型,详细参数描述如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
bytesWritten | number | 实际被写入到文件中的字节数(被写入的字节数不一定与被写入的字符串字符数相同) | 3.73.0 |
错误码
errNo | errMsg | 说明 | 最低支持版本 |
---|---|---|---|
20001 | invalid param | 参数错误 | 3.74.0 |
21100 | bad file descriptor | 无效的文件描述符 | 3.74.0 |
21101 | system error | 小游戏框架内部错误,有需要请创建工单咨询 | 3.74.0 |
21102 | the maximum size of the file storage limit is exceeded | 存储空间不足,或文件大小超出上限 | 3.74.0 |
21103 | ${encoding} encode error | 字符编码转换失败(例如 base64 格式错误) | 3.74.0 |
21104 | data to write is empty | 写入数据为空 | 3.74.0 |
21105 | illegal operation on a directory | 不可对目录进行此操作(例如,指定的 filePath 是一个已经存在的目录) | 3.74.0 |
21106 | value of length is out of range | 传入的 length 不合法 | 3.74.0 |
21107 | value of offset is out of range | 传入的 offset 不合法 | 3.74.0 |
21108 | invalid fd | 传入的 fd 无效,不是通过 open 打开获得的 | 3.74.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
try { const fs = tt.getFileSystemManager(); const fd = fs.openSync({ filePath, flag: "w+", }); const res = fs.writeSync({ fd, data: "test", encoding: "utf-8", offset: 0, position: 0, }); console.log("文件同步写入成功", res); } catch (err) { console.error("文件同步写入失败", err); }