【鸿蒙游戏技术分享 第63期】鸿蒙文件基础操作总结

游戏技术分享
发布于 2025-8-8 14:22
浏览
0收藏

关键词

鸿蒙,基础文件操作,文件读写能力


问题描述

我们游戏项目集成了华为应用内支付服务,在支付成功后需要获取华为接口返回的加密的JWS格式的订单信息,并上报到我们服务端解密后获取对应的json格式的订单信息做校验。


开发测试阶段,先由客户端获取一个jws数据供服务端做调测。


该jws格式数据因数据太长,日志打印不能完全打印出来,获取不到完整的数据导致解析异常。因此想到了用文件读写保存的方式,鸿蒙新手简单记录下鸿蒙文件基本读写问题。


问题解决

根据鸿蒙官方文档 介绍,通过基础文件操作接口(ohos.file.fs)实现应用文件访问能力。


代码开始前导入该接口能力:


import fs, { ReadOptions } from '@ohos.file.fs';


通过UIAbilityContext、AbilityStageContext、ExtensionContext可以获取HAP级别通用应用文件路径,该路径下的文件随HAP的卸载而删除。


const context = getContext(this) as common.UIAbilityContext;


const filesDir = context.filesDir;


打印出来的实际路径为"/data/storage/el2/base/haps/entry/files"。


然后在该路径下使用fs的mkdir方法创建一个文件夹brower:


await fs.mkdir(filesDir + "/brower");


然后创建一个可读写的purchaseOrderPayload文件,fs.OpenMode.CREATE在没有该文件时会自动创建文件,fs.OpenMode.READ_WRITE表示读写权限,并以“|”间隔开:


let fd = await fs.open(filesDir + "/brower/purchaseOrderPayload.txt", fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);


创建后讲jws信息写入文件中:


fs.write(fd.fd,jwsPurchaseOrder);


最后关闭文件:


await fs.close(fd);


代码完成后运行代码,可使用deveco工具找到"/data/storage/el2/base/haps/entry/files"路径并查看该文件,保存本地。


更多问题可关注:

鸿蒙游戏官方网站:​​https://developer.huawei.com/consumer/cn/games/​

公开课:​​华为开发者学堂​

分类
收藏
回复
举报
回复
    相关推荐