HarmonyOS 鸿蒙Next 求解决fileio.readText

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 求解决fileio.readText 只是想简单从文件中取数据,可是没想到卡了大半天了,求大神帮看一下。

代码如下:

import fileio from '@ohos.fileio';
import ability_featureAbility from '@ohos.ability.featureAbility';
import hilog from '@ohos.hilog';

@Entry
@Component
struct NewmyFileTwo {
  @State path:string="";

  private ReadFile(){
    hilog.info(0x0000, 'testTag', '%{public}s', 'startsssssssssssssssss')

    let path= '//pages//111.txt'
    fileio.readText('111.txt', {}, function(err,str){
      hilog.info(0x0000, 'testTag', '%{public}s', "err:"+err)
      hilog.info(0x0000, 'testTag', '%{public}s', "str:"+str)
    });

    hilog.info(0x0000, 'testTag', '%{public}s', 'endeeeeeeeeeeeeeeeeeee')//断点
  }

  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Text('读文件内容')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .backgroundColor(Color.White)
        .onClick(this.ReadFile.bind(this));
    }
    .width('100%')
    .height('100%')
  }
}

虚拟界面效果:

cke_1551.png

日志输出:

cke_2941.png

一直都是这个状态,我原本以为是参数问题,原本使用的是文档推荐的代码:

fileio.readText(path, { position: 1, encoding: 'UTF-8' }, function(err, str){
  // do something
});

但是我看那些参数都有默认值,删掉之后就是代码现在的样子,可是还是一样的报错。

之后觉得是地址的问题,原本地址是用一个变量保存,然后把变量放在函数中调用:

let path= '//pages//111.txt'
fileio.readText(path, {}, function(err,str){
  hilog.info(0x0000, 'testTag', '%{public}s', "err:"+err)
  hilog.info(0x0000, 'testTag', '%{public}s', "str:"+str)
});

觉得是变量的类型不对,于是直接用string放到readText里面,也就是现在代码的样子,还是报错。

之后觉得是文件路径非法,可是我在这个代码里ctrl这个1路径是能够跳转过去的;最后考虑是虚拟机识别的层次和代码识别的层次不一致,所以给多个层次都放了要识别的文件:

cke_129752.png

可是还是没有用,实在是没头绪了,请大家帮帮忙。


更多关于HarmonyOS 鸿蒙Next 求解决fileio.readText的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

更多关于HarmonyOS 鸿蒙Next 求解决fileio.readText的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我已经解决了这个问题,大家有需要的可以看我另一篇帖子。

在HarmonyOS中,fileio.readText 是用于读取文本文件内容的API。该API属于@ohos.fileio模块,主要用于从指定文件中读取文本数据。使用该API时,需要确保文件路径正确,并且应用具有相应的文件访问权限。

以下是一个简单的示例代码,展示如何使用fileio.readText读取文本文件内容:

import fileio from '@ohos.fileio';

let filePath = 'path/to/your/file.txt'; // 替换为实际文件路径

try {
    let text = fileio.readText(filePath);
    console.log('File content:', text);
} catch (error) {
    console.error('Failed to read file:', error);
}

在调用fileio.readText时,如果文件路径不存在或文件无法读取,API会抛出异常。因此,建议在使用时进行异常处理,以确保程序的健壮性。

此外,fileio.readText默认使用UTF-8编码读取文件内容。如果文件使用其他编码格式,可能需要先进行编码转换。

需要注意的是,fileio.readText是同步操作,会阻塞当前线程直到文件读取完成。如果文件较大或需要处理多个文件,建议使用异步API或在工作线程中执行读取操作,以避免阻塞主线程。

以上是关于fileio.readText的基本使用方法和注意事项。

在HarmonyOS(鸿蒙OS)中,fileio.readText 用于从文件中读取文本内容。以下是一个简单的示例代码,展示如何使用 fileio.readText 读取文本文件:

import fileio from '@ohos.fileio';

// 文件路径
let filePath = 'path/to/your/file.txt';

// 读取文本内容
try {
  let text = fileio.readText(filePath);
  console.log('文件内容:', text);
} catch (error) {
  console.error('读取文件失败:', error);
}

请确保文件路径正确,并且应用具有访问该文件的权限。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!