HarmonyOS 读取raw文件参考示例

HarmonyOS 读取raw文件参考示例

HarmonyOS
2024-08-07 11:12:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
平方厘米

示例代码

async loadFromRawFile(context: Context, rawFileName: string): void {
let rawFileRes: Uint8Array = await context.resourceManager.getRawFileContent(rawFileName);
let bufferLike: ArrayBufferLike = rawFileRes.buffer;
let rawFileBuffer: ArrayBuffer = bufferLike.slice(0, bufferLike.byteLength);
log.info('loadFromRawFile: ' + rawFileBuffer.byteLength);
const decoder = util.TextDecoder.create('"utf-8"');
const str = decoder.decodeWithStream(new Uint8Array(rawFileBuffer));
log.info('loadFromRawFile ' + str);
}
loadRawFd(context: Context, rawFileName: string) {
context.resourceManager.getRawFd(rawFileName, (err: BusinessError, value: resourceManager.RawFileDescriptor) => {
let fd = value.fd;
let offset = value.offset;
let fdLength = value.length;
log.info('fd: ' + value.fd + ', offset: ' + offset + ', length: ' + fdLength);
let stream: fs.Stream = fs.fdopenStreamSync(fd, 'r');

let stringBuffer = new ArrayBuffer(128); // 每次默认只装128个长度
let currentLength = 0; // 当前已读取长度
let readLength = 128; // 每次读取长度,默认128的长度
while (currentLength < fdLength) {
readLength = (fdLength - currentLength > 128) ? 128 : (fdLength - currentLength)
stringBuffer = new ArrayBuffer(readLength);
stream.readSync(stringBuffer, { offset: offset + currentLength, length: readLength });
let decoder = util.TextDecoder.create('"utf-8"');
let str = decoder.decodeWithStream(new Uint8Array(stringBuffer));
log.info(str); // 解析成字符串并打印出日志
currentLength += readLength; // 读取起始点
}

context.resourceManager.closeRawFdSync(rawFileName); // 文件读取完后,需要使用该接口将FD关掉
// fs.closeSync(fd); // 不使用该API,已给研发提诉求优化指导。
stream.closeSync();
})
}
分享
微博
QQ
微信
回复
2024-08-07 15:43:57
相关问题
HarmonyOS 读取raw文件参考示例
845浏览 • 0回复 待解决
HarmonyOS raw音频文件读取转为字节流
870浏览 • 1回复 待解决
HarmonyOS 数据库的相关示例代码参考
1331浏览 • 1回复 待解决
HarmonyOS 加载raw文件内容失败
1742浏览 • 1回复 待解决
HarmonyOS 文件拷贝示例
991浏览 • 1回复 待解决
HarmonyOS 文件读取
803浏览 • 1回复 待解决
HarmonyOS如何读取文件
1623浏览 • 1回复 待解决
HarmonyOS 无法读取文件
1097浏览 • 1回复 待解决
HarmonyOS 如何读取项目文件
560浏览 • 1回复 待解决
HarmonyOS photoPicker文件读取问题
857浏览 • 1回复 待解决
HarmonyOS fs读取本地文件
1380浏览 • 1回复 待解决
HarmonyOS 如何读取本地json文件
1420浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
1798浏览 • 1回复 待解决
HarmonyOS 如何读取本地文件流?
1105浏览 • 1回复 待解决
HarmonyOS libs下文件如何读取
862浏览 • 1回复 待解决
HarmonyOS 读取.properties文件的api
822浏览 • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败
1860浏览 • 1回复 待解决
如何读取本地JSON文件
3555浏览 • 1回复 待解决