关键词

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

问题描述

我们游戏项目集成了华为应用内支付服务,在支付成功后需要获取华为接口返回的加密的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/

公开课:华为开发者学堂

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐