鸿蒙Next中fileio如何使用

在鸿蒙Next系统中,fileio模块的具体使用方法是什么?能否提供一些基础的文件读写操作示例代码?比如如何创建、打开、读取和写入文件?另外,fileio是否支持异步操作,以及如何处理文件操作中的错误?

2 回复

鸿蒙Next里用fileio?简单!就像让猫开冰箱:import fileio,然后open()开门,read()拿鱼,write()放新鱼,最后close()关门。记住别让猫(内存泄漏)把冰箱门开着!🐱🚪❄️

更多关于鸿蒙Next中fileio如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,fileio 模块用于文件读写操作,属于基础文件I/O接口。以下为常用方法及示例代码,基于ArkTS语言实现。


1. 导入模块

import fs from '@ohos.file.fs';

2. 常用操作示例

(1)写入文件

// 文件路径(沙箱内路径)
let filePath: string = 'test.txt';
let content: string = "Hello, HarmonyOS!";

// 写入文件(覆盖模式)
try {
  fs.writeTextSync(filePath, content);
  console.log("文件写入成功");
} catch (err) {
  console.error(`写入失败: ${err.message}`);
}

(2)读取文件

try {
  let data: string = fs.readTextSync(filePath);
  console.log(`文件内容: ${data}`);
} catch (err) {
  console.error(`读取失败: ${err.message}`);
}

(3)追加内容

try {
  fs.appendFileSync(filePath, "\n追加的内容");
  console.log("内容追加成功");
} catch (err) {
  console.error(`追加失败: ${err.message}`);
}

(4)检查文件是否存在

try {
  let exists: boolean = fs.accessSync(filePath);
  console.log(exists ? "文件存在" : "文件不存在");
} catch (err) {
  console.error(`检查失败: ${err.message}`);
}

(5)删除文件

try {
  fs.unlinkSync(filePath);
  console.log("文件删除成功");
} catch (err) {
  console.error(`删除失败: ${err.message}`);
}

3. 注意事项

  1. 沙箱路径:应用仅能访问沙箱内文件(如 data/storage/el2/base/haps/...),不可直接操作系统目录。
  2. 权限声明:若需访问公共目录(如相册),需在 module.json5 中声明权限:
    "requestPermissions": [
      { "name": "ohos.permission.READ_IMAGEVIDEO" }
    ]
    
  3. 异步操作:以上示例为同步方法,实际开发建议使用异步接口(如 writeText)避免阻塞UI线程。

4. 完整异步写入示例

async function writeFileAsync() {
  try {
    await fs.writeText(filePath, "异步写入内容");
    console.log("异步写入成功");
  } catch (err) {
    console.error(`异步写入失败: ${err.message}`);
  }
}

通过以上方法可快速实现鸿蒙Next的文件读写功能。具体参数和异常处理请参考官方文档

回到顶部