OpenHarmony开发者论坛

标题: OpenHarmony应用如何预置文件并访问预置文件内容 [打印本页]

作者: onefan    时间: 2023-12-9 16:29
标题: OpenHarmony应用如何预置文件并访问预置文件内容
[md]# OpenHarmony应用如何预置文件并访问预置文件内容

## 简介:

预置文件可以存放到/resources/rawfile目录,读取预置文件内容可以使用[@ohos.resourceManager](https://docs.openharmony.cn/page ... esource-manager.md/)。

## 文档环境:

开发环境: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](https://forums-obs.openharmony.c ... 2sh0q6s0sbz2svy.png "1702109419905.png")

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

![1702109523369.png](https://forums-obs.openharmony.c ... nqnkie8e049kehh.png "1702109523369.png")

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

![1702110515399.png](https://forums-obs.openharmony.c ... 1tss6194s0ek0s6.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);
    }
    return dataToString
  }

  build() {
    Row() {
      Column() {
        Text(this.textValue)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}
```
[/md]
作者: onefan    时间: 2023-12-9 16:56
【SDK 版本:3.3.13.5 (full sdk)】改为【SDK 版本:3.2.13.5 (full sdk)】
【OpenHarmony.txt 文件,,通过】改为【OpenHarmony.txt 文件,通过】




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5