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如何读取文件
101浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
73浏览 • 1回复 待解决
HarmonyOS fs模块读取文件的问题
110浏览 • 1回复 待解决
HarmonyOS项目中json文件文本读取
143浏览 • 1回复 待解决
HarmonyOS db文件无法读取到数据
135浏览 • 1回复 待解决
如何根据uri读取文件?
2732浏览 • 1回复 待解决
如何读取读取分布式路径下的文件
133浏览 • 1回复 待解决
如何读取本地JSON文件
1192浏览 • 1回复 待解决
Preview是否支持读取rawfile文件
2014浏览 • 1回复 待解决
HarmonyOS Toolbar组件示例
98浏览 • 1回复 待解决
怎么读取本地音频文件列表?
5853浏览 • 1回复 待解决
stageMode下如何读取本地json 文件
3293浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
2929浏览 • 1回复 待解决
怎么读取sdcard下的txt文件
9302浏览 • 2回复 待解决
HarmonyOS 静态har包混淆配置参考
165浏览 • 1回复 待解决
求大佬告知如何读取文件的大小
1540浏览 • 1回复 待解决
单框架native侧文件读取权限问题
1376浏览 • 1回复 待解决