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

HarmonyOS应用开发实战:猫猫大作战-fileIo 文件读写

前言

fileIo是 HarmonyOS 的文件 I/O 模块,支持文件的打开、读写、删除等操作。在「猫猫大作战」中,fileIo 用于保存游戏截图文件读取配置文件

一、文件读写

import { fileIo } from '@kit.CoreFileKit'; async function writeTextFile(path: string, content: string): Promise<void> { const file = fileIo.openSync(path, fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY | fileIo.OpenMode.TRUNC); const encoder = new TextEncoder(); fileIo.writeSync(file.fd, encoder.encode(content)); fileIo.closeSync(file); } async function readTextFile(path: string): Promise<string> { const file = fileIo.openSync(path, fileIo.OpenMode.READ_ONLY); const stat = fileIo.statSync(path); const buf = new ArrayBuffer(stat.size); fileIo.readSync(file.fd, buf); fileIo.closeSync(file); return new TextDecoder().decode(buf); }

二、文件操作方法

方法功能说明
openSync(path, mode)打开文件返回 FD
readSync(fd, buf)读取读入 ArrayBuffer
writeSync(fd, buf)写入写入 ArrayBuffer
closeSync(fd)关闭释放 FD
unlinkSync(path)删除删除文件
mkdirSync(path)创建目录递归创建
statSync(path)获取状态大小、修改时间

三、文件打开模式

模式说明文件不存在
READ_ONLY只读报错
WRITE_ONLY只写报错
CREATE创建文件创建
TRUNC清空内容(配合 WRITE)-
APPEND追加报错

四、游戏中的应用

// 保存游戏截图 async function saveScreenshot(pixelMap: PixelMap, path: string): Promise<void> { const packer = image.createImagePacker(); const buffer = await packer.packing(pixelMap, { format: 'image/jpeg', quality: 85, }); packer.release(); const file = fileIo.openSync(path, fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY | fileIo.OpenMode.TRUNC); fileIo.writeSync(file.fd, buffer); fileIo.closeSync(file); }

五、最佳实践

  1. 用完关闭 FDcloseSync(fd)释放资源
  2. try-finally 保证关闭:异常时也要 close
  3. 路径使用沙箱目录filesDircacheDir
  4. 大文件分块读写:单次读写不超 1MB

总结

fileIo 提供文件打开、读写、删除等基础操作。核心要点:openSync打开、readSync/writeSync读写、closeSync关闭释放、 沙箱路径安全操作

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


相关资源:

  • fileIo API 参考
  • 第 140 篇:AppStorage
  • 第 142 篇:sandbox-path
  • 第 143 篇:JSON
http://www.jsqmd.com/news/1287906/

相关文章:

  • 读《论语》为政第二
  • 大数据分析是什么?从零理解数据驱动决策的完整框架
  • 英雄联盟Akari助手:基于LCU API的智能游戏效率工具完整指南
  • 2026成都成华区管道疏通避坑指南 本地专业师傅30分钟上门 - 余生黄金回收
  • LTE Cat 1模块与PIC32MX的物联网通信方案设计
  • 电缆故障测试时高阻闪络波形为何不稳定? - HVHIPOT
  • 2026年弹簧支吊架厂家挑选攻略 沧州康才等核心企业实力梳理 - 品牌推荐达人
  • RAG 延迟优化 checklist:30 个你可以在一个下午做完的降延迟措施
  • Intel Edison通过USB以太网实现稳定有线网络连接完整指南
  • PalEdit完全指南:5步打造你的PalWorld梦幻伙伴阵容
  • 重庆木皮门墙柜定制|纽莱福高端别墅天然木皮一体化源头工厂 - 资讯快报
  • 论文代码审查的checklist:从环境复现到结果验证的十个检查点
  • MMC小信号建模技术详解与应用实践
  • TEdit地图编辑器:像素世界的终极创作神器与完整技术解析
  • 让AI靠谱地写代码,你可能缺了一套Spec
  • 2026 绍兴靠谱的装修公司有哪些:沐野装饰,柯桥越城双展厅服务,为无转包装修、透明报价整装、家装工装一体装修制定装修风向标 - 企业品牌优选测评官
  • 前端技术雷达:2026 下半年值得关注的新工具与新范式
  • 5步彻底解锁Wand专业版:免费去除时间限制与远程控制指南
  • 创业团队的成本优化年度总结:从基础设施到人力成本的全面审计
  • 南京秦淮区专业正规防水补漏公司推荐(2026.7 月新) - 超人防水
  • 凡科杰建云官网产品总览:建站、小程序、商城、门店、教育、外贸和GEO怎么选?
  • MAA明日方舟助手:重新定义游戏日常自动化的开源利器
  • 当“搜索”变成“提问”: AI时代品牌被发现的路径正在重构
  • 无人机3D路径规划:NSGA-II算法Matlab实现与优化
  • 2026黄浦区自助餐公司哪家好,婚宴自助餐公司推荐|四季与你全流程一站式外烩服务口碑之选 - geo88
  • 如何轻松下载B站大会员4K视频和充电专属内容
  • GetQzonehistory:如何一键完整备份你的QQ空间十年青春记忆
  • 临汾2026.7月新推荐:专业正规防水补漏公司全场景免砸砖 - 吉林同城获客
  • 2026昆明婚纱照真实口碑汇总:新人、老客都说好的4家店 - 商业快讯早知道
  • 检索引擎深度对比:Elasticsearch vs Milvus vs Redis 在 RAG 中的定位