
【鸿蒙游戏技术分享】鸿蒙文件基础操作总结
关键词
鸿蒙,基础文件操作,文件读写能力
问题描述
我们游戏项目集成了华为应用内支付服务,在支付成功后需要获取华为接口返回的加密的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"路径并查看该文件,保存本地。
更多问题可关注:
鸿蒙游戏官方网站:已有游戏移植-鸿蒙游戏-华为开发者联盟
公开课:华为开发者学堂
