Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第8章:数据持久化与网络请求

第8章:数据持久化与网络请求

8.1 本地数据存储

8.1.1 本地存储概述

ArkTS提供了多种本地数据存储方案,适用于不同场景的数据持久化需求:

  • 轻量级存储:适用于简单键值对数据(如用户偏好设置)
  • 文件存储:适用于结构化/非结构化数据(如日志、图片缓存)
  • 数据库存储:适用于复杂关系型数据(后续章节单独介绍)

8.1.2 轻量级存储(Preferences)

// 导入Preferences模块
import preferences from '@ohos.data.preferences'

// 1. 获取Preferences实例
let pref: Promise<preferences.Preferences> = 
    preferences.getPreferences(context, 'mypref')

// 2. 写入数据
pref.then((pref) => {
    pref.put('username', 'ArkUser').flush()
})

// 3. 读取数据
pref.then((pref) => {
    pref.get('username', 'default').then((value) => {
        console.log(value) // 输出:ArkUser
    })
})

8.1.3 文件存储(File API)

// 导入文件系统模块
import fs from '@ohos.file.fs'

// 1. 获取应用文件目录路径
let dir = globalThis.abilityContext.filesDir

// 2. 写入文件
let filePath = dir + '/data.txt'
fs.writeText(filePath, 'Hello ArkTS').then(() => {
    console.log('写入成功')
})

// 3. 读取文件
fs.readText(filePath).then((content) => {
    console.log(content) // 输出:Hello ArkTS
})

8.1.4 存储方案对比

方案类型容量限制数据类型适用场景
Preferences1MB键值对用户配置、简单状态
文件存储无硬限制任意格式日志、媒体文件、缓存
关系型数据库无硬限制结构化关系数据复杂业务数据(见8.2节)

8.1.5 最佳实践

  1. 敏感数据加密:使用@ohos.security.crypto对敏感信息加密
  2. 存储空间管理:定期清理缓存文件
  3. 异常处理:
try {
    await fs.writeText(path, content)
} catch (err) {
    console.error(`存储失败: ${err.code}`)
}

8.1.6 实战练习

实现一个简单的笔记应用:

  1. 使用Preferences存储用户主题偏好
  2. 使用文件存储系统保存笔记内容
  3. 实现笔记的增删改查功能

扩展阅读:HarmonyOS分布式数据管理(跨设备数据同步能力将在第14章详解)

Last Updated:: 5/22/25, 5:00 PM