HarmonyOS应用开发实战:猫猫大作战-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 的选用。

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


相关资源:

  • fileIo API 参考
  • 开源鸿蒙跨平台社区
  • 第 140 篇:AppStorage
  • 第 142 篇:sandbox 路径