• Lv0
    粉丝0

积分16 / 贡献0

提问0答案被采纳0文章1

作者动态

    [经验分享] OpenHarmony应用如何预置文件并访问预置文件内容

    onefan 显示全部楼层 发表于 2023-12-9 16:29:37

    OpenHarmony应用如何预置文件并访问预置文件内容

    简介:

    预置文件可以存放到/resources/rawfile目录,读取预置文件内容可以使用@ohos.resourceManager

    文档环境:

    开发环境:Windows 10 专业版

    DevEco Studio 版本:DevEco Studio 3.1 Release(3.1.0.500)

    SDK 版本:3.2.13.5 (full sdk)

    开发板型号:DAYU200(RK3568)

    系统版本:OpenHarmony-3.2-Release

    演示demo:

    新建一个Stage框架的demo工程,在EntryAbility中通过globalThis.demoAbilityContext = this.context拿到到content信息,并在entry\src\main\resources\rawfile目录下预置一个内容为OneFan+++的OpenHarmony.txt文件,通过resourceManager.getRawFileContent接口获取OpenHarmony.txt文件内容,改接口返回的数据为字节码数组:

    1702109419905.png

    字节码数组可以使用int8ArrayToString方法转化为String。

    1702109523369.png

    这样就可以实现文件预置及读取预置文件内容。

    1702110515399.png

    import hilog from '@ohos.hilog';
    
    @Entry
    @Component
    struct Index {
      @State textValue: string = 'Welcome OpenHarmony World'
    
      aboutToAppear() {
        try {
          globalThis.demoAbilityContext.resourceManager.getRawFileContent("OpenHarmony.txt", (error, value) => {
            if (error != null) {
              hilog.info(0, 'OneFan error is ', error)
            } else {
              let rawFile = value;
              this.textValue = JSON.stringify(rawFile)
              hilog.info(0, 'OneFan getRawFd rawFile ', JSON.stringify(rawFile))
    
              this.textValue = this.int8ArrayToString(rawFile)
              hilog.info(0, 'OneFan OpenHarmony text is ', JSON.stringify(this.textValue))
            }
          });
        } catch (error) {
          let code = (error).code;
          hilog.error(0, 'OneFan callback getRawFileContent failed, error code is ', code)
        }
      }
    
      int8ArrayToString(arrayData) {
        let dataToString = "";
        for (var i = 0; i < arrayData.length; i++) {
          dataToString += String.fromCharCode(arrayData[i]);
        }
        return dataToString
      }
    
      build() {
        Row() {
          Column() {
            Text(this.textValue)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
          }
          .width('100%')
        }
        .height('100%')
      }
    }

    ©著作权归作者所有,转载或内容合作请联系作者

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论1

    onefan

    沙发 发表于 2023-12-9 16:56:15
    【SDK 版本:3.3.13.5 (full sdk)】改为【SDK 版本:3.2.13.5 (full sdk)】
    【OpenHarmony.txt 文件,,通过】改为【OpenHarmony.txt 文件,通过】

    Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部