鸿蒙应用开发 持久化存储之Preferences

1. Preferences 首选项概念

掌握首选项的基本使用

Preferences

基本概念:

  • 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。
  • 数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。

条件限制:

  • Key键为string类型,要求非空且长度不超过1024个字节。
  • 如果Value值为string类型,请使用UTF-8编码格式,可以为空,不为空时长度不超过16 * 1024 * 1024个字节(16MB)。
  • 内存会随着存储数据量的增大而增大,所以存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销

2. Preferences使用

2.1 获取首选项实例

import { preferences } from '@kit.ArkData';

context = getContext(this)

store = preferences.getPreferencesSync(this.context, { name: 'my_store' });

2.2 写入或修改 并持久化

// 写入
this.store.putSync('name', '小王');
修改
this.store.putSync('name', '小李');
// 持久化
this.store.flush()

2.3 读取

// 读取
this.store.getSync('name','我是默认的名字 如果获取不到则展示我')

2.4 删除 并持久化

// 删除
this.store.deleteSync('name');
// 持久化
this.store.flush()

2.5 删除实例

// 删除实例
preferences.deletePreferences(context, { name: 'my_store' })

2.5 删除所有

this.getStore().clearSync()
this.getStore().flush()

2.6 获取所有

const obj = this.getStore().getAllSync() // 返回一个对象

3.代码完整示例

import { preferences } from '@kit.ArkData'

@Entry
@Component
struct Index {
  // 实例化首选项 并给仓库起名字
  store = preferences.getPreferencesSync(getContext(), { name: 'my_store' })

  build() {
    Column({ space: 15 }) {
      Text('Preferences首选项')
        .fontSize(30)
        .margin(50)
      Button('保存首选项')
        .onClick(() => {
          // 2. 存储数据 要持久化数据
          this.store.putSync('name', '杨萌萌')
          this.store.flush() // --- 别忘了保存
        })
      Button('修改首选项')
        .onClick(() => {
          this.store.putSync('name', '孙某某')
          this.store.flush()
        })
      Button('获取首选项')
        .onClick(() => {
          // 第二个默认的必填
          this.store.getSync('name', '我是默认名字')
        })
      Button('删除数据')
        .onClick(() => {
          this.store.deleteSync('name')
          this.store.flush()
        })
      Button('删除仓库')
        .onClick(() => {
          preferences.deletePreferences(getContext(), { name: 'my_store' })
        })
    }
    .width('100%')
    .height('100%')
  }
}

4.如何查看存储的文件

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值