文章配图:fileIo 的文本文件操作

页面预览

前言

fileIo 是 HarmonyOS 提供的文件系统操作 API,支持文件的创建、读写、删除等操作。在需要自定义配置文件的场景中,fileIo + JSON 序列化是一种灵活的存储方案。

本文以「猫猫大作战」的配置文件读写为锚点,讲解 fileIo 的文本文件操作。

提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–140 篇。本篇是阶段四第 141 篇。

一、fileIo 文件读写

1.1 写入文件

import { fileIo } from '@kit.CoreFileKit';
import { common } from '@kit.AbilityKit';
import { json } from '@kit.ArkTS';

async function saveConfig<T>(key: string, data: T) {
  const context = getContext() as common.UIAbilityContext;
  const filePath = context.filesDir + '/' + key + '.json';
  const file = fileIo.openSync(filePath, fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY);
  fileIo.writeSync(file.fd, JSON.stringify(data));
  fileIo.closeSync(file);
}

1.2 读取文件

async function loadConfig<T>(key: string, defaultVal: T): Promise<T> {
  try {
    const context = getContext() as common.UIAbilityContext;
    const filePath = context.filesDir + '/' + key + '.json';
    const file = fileIo.openSync(filePath, fileIo.OpenMode.READ_ONLY);
    const content = fileIo.readSync(file.fd);
    fileIo.closeSync(file);
    return JSON.parse(content) as T;
  } catch {
    return defaultVal;
  }
}

二、总结

fileIo 实现文件的读写操作,配合 JSON.serialize/parse 实现结构化数据持久化。

核心要点

  • openSync/readSync/writeSync/closeSync 同步文件操作
  • 路径使用 context.filesDir
  • JSON.stringify/parse 序列化/反序列化

下一篇预告:第 142 篇将深入 sandbox 路径——filesDir/cacheDir 的选用。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

Logo

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

更多推荐