当前位置: 首页 > news >正文

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 路径
http://www.jsqmd.com/news/1277672/

相关文章:

  • 盘点五种最常见的业务逻辑漏洞挖掘案例,零基础学网络安全最快上手拿赏金的方法你一定要知道!
  • Graph API权限滥用实战分析:3个步骤实现从证书泄露到全局管理员权限提升
  • C++ 从凸包中删除点(Deleting points from Convex Hull)
  • League Akari:英雄联盟玩家的终极效率工具
  • 【通义千问私有化部署终极 checklist】:NVIDIA A10/A800/H20适配清单、国产信创环境兼容矩阵、安全审计必检项(含等保2.0合规对照表)
  • (2026最新)大同本地人必选的靠谱漏水检测维修推荐:正规防水补漏防水-卫生间/厨房/屋顶/阳台/外墙渗漏水精准测漏,本地人的信赖之选 - 安佳防水
  • 从零理解强化学习:核心概念、算法演进与PPO、DQN等实战入门
  • Claude模型选择指南:Opus、Sonnet、Haiku的成本效益与场景化应用
  • 星火应用商店:Linux桌面软件生态的革命性解决方案 [特殊字符]
  • Niagara—— 渲染器详解
  • 为什么你的百度网盘解析总失效?揭秘安全不限速的底层逻辑
  • Python学习误区与高效方法
  • League Akari:英雄联盟玩家必备的终极本地化效率工具
  • 基于Apache Doris一站式构建知识图谱增强RAG系统
  • 全球高分辨率降水估计数据集(静止轨道 (GEO) 卫星观测数据)
  • 当Vibe Coding遇上熵增定律:速度红利背后的系统性债务与破局路径
  • 2026 年新发布:金坛值得关注的宣传片拍摄公司工作室哪家好,拍出爆款:揭秘顶级宣传片背后的秘密 - 企业推荐官【认证官方】
  • 人类驾驶与端到端自动驾驶的认知差异解析
  • 【C++】map 与 multimap
  • Go语言实现二进制回文数统计与优化
  • 21天前端面试系统化备战:从基础到高级实战进阶指南
  • 终极指南:如何在Mac上使用QMCDecode免费解锁QQ音乐加密格式,实现音乐自由播放?
  • Kimi API调用成本飙升?(真实账单分析+3层降本方案)——某金融科技团队月省¥23,800实录
  • Python与其他编程语言的对比与应用场景分析
  • 在Windows 10和11上完美运行Android应用:WSABuilds完整指南
  • 如何快速解密QMC音乐:完整技术指南与音频格式转换解决方案
  • 5分钟免费解锁:applera1n iOS激活锁终极绕过工具完整指南
  • 如何通过无线或数据线将文件从 iPhone 传输到 PC?
  • 2026年AI报表软件测评:智能与兼容性解析 - 科技焦点
  • GIS在线局部放电监测系统深度研究报告