# string|ArrayBuffer FileSystemManager.readFileSync(string filePath, string encoding, number position, number length)
以 Promise 风格 调用:不支持
小程序插件:支持,需要小程序基础库版本不低于 2.19.2
相关文档: 文件系统
# 功能描述
FileSystemManager.readFile 的同步版本
# 参数
# string filePath
要读取的文件的路径 (本地路径)
# string encoding
指定读取文件的字符编码,如果不传 encoding,则以 ArrayBuffer 格式读取文件的二进制内容
encoding 的合法值
值 | 说明 | 最低版本 |
---|---|---|
ascii | ||
base64 | ||
binary | ||
hex | ||
ucs2 | 以小端序读取 | |
ucs-2 | 以小端序读取 | |
utf16le | 以小端序读取 | |
utf-16le | 以小端序读取 | |
utf-8 | ||
utf8 | ||
latin1 |
# number position
基础库 2.10.0 开始支持,低版本需做兼容处理。
从文件指定位置开始读,如果不指定,则从文件头开始读。读取的范围应该是左闭右开区间 [position, position+length)。有效范围:[0, fileLength - 1]。单位:byte
# number length
基础库 2.10.0 开始支持,低版本需做兼容处理。
指定文件的长度,如果不指定,则读到文件末尾。有效范围:[1, fileLength]。单位:byte
# 返回值
# string|ArrayBuffer data
文件内容
# 错误
错误码 | 错误信息 | 说明 |
---|---|---|
fail no such file or directory, open ${filePath} | 指定的 filePath 所在目录不存在 | |
fail permission denied, open ${dirPath} | 指定的 filePath 路径没有读权限 | |
fail sdcard not mounted | Android sdcard 挂载失败 |
# 示例代码
const fs = wx.getFileSystemManager()
fs.readFile({
filePath: `${wx.env.USER_DATA_PATH}/hello.txt`,
encoding: 'utf8',
position: 0,
success(res) {
console.log(res.data)
},
fail(res) {
console.error(res)
}
})
// 同步接口
try {
const res = fs.readFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`, 'utf8', 0)
console.log(res)
} catch(e) {
console.error(e)
}