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如何读取文件
416浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
354浏览 • 1回复 待解决
HarmonyOS db文件无法读取到数据
442浏览 • 1回复 待解决
HarmonyOS项目中json文件文本读取
670浏览 • 1回复 待解决
HarmonyOS fs模块读取文件的问题
412浏览 • 1回复 待解决
HarmonyOS 配置文件中metadata如何读取
149浏览 • 1回复 待解决
如何根据uri读取文件?
2962浏览 • 1回复 待解决
如何读取读取分布式路径下的文件
273浏览 • 1回复 待解决
如何读取本地JSON文件
2040浏览 • 1回复 待解决
Preview是否支持读取rawfile文件
2326浏览 • 1回复 待解决
HarmonyOS 如何进行文本文件读取
107浏览 • 1回复 待解决
怎么读取本地音频文件列表?
6147浏览 • 1回复 待解决