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);
}
五、最佳实践
- 用完关闭 FD:
closeSync(fd)释放资源 - try-finally 保证关闭:异常时也要 close
- 路径使用沙箱目录:
filesDir、cacheDir - 大文件分块读写:单次读写不超 1MB
总结
fileIo 提供文件打开、读写、删除等基础操作。核心要点:openSync 打开、 readSync/writeSync 读写、 closeSync 关闭释放、 沙箱路径安全操作。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
更多推荐


所有评论(0)