天天看点

【Harmony OS】【ARK UI】轻量级数据存储

1、轻量级数据存储概述

1.1 轻量级数据存储适用于对Key-Value结构的数据进行存取和持久化操作。应用获取某个轻量级存储对象后,该存储对象中的数据将会被缓存在内存中,以便应用获得更快的数据存取速度。应用也可以将缓存的数据再次写回文本文件中进行持久化存储,由于文件读写将产生不可避免的系统资源开销,建议应用减少对持久化文件的读写频率。

参考网址:

​​​https://developer.harmonyos.com/cn/docs/documentation/doc-guides/database-preference-overview-0000000000030086​​

2、使用场景

2.1 轻量级数据存储功能通常用于保存应用的一些常用配置信息,并不适合需要存储大量数据和频繁改变数据的场景。应用的数据保存在文件中,这些文件可以持久化地存储在设备上。需要注意的是,应用访问的实例包含文件所有数据,这些数据会一直加载在设备的内存中,直到应用主动从内存中将其移除前,应用可以通过Preferences的API进行数据操作。

轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。

3、代码实现

import dataStorage from '@ohos.data.storage'
import ability_featureAbility from '@ohos.ability.featureAbility'

@Entry
@Component
struct MyStorage {
  @State path: string= "";

  public PushData() {
    var that = this;
    var context = ability_featureAbility.getContext();
    context.getFilesDir()
      .then((data) => {
        that.path = data;
        let storage = dataStorage.getStorageSync(that.path + '/mystore')
        storage.putSync('startup', 'auto')
        storage.flushSync()
        console.log("flushSync成功")
      }).catch((error) => {
      console.log('Failed to obtain the file directory. Cause: ' + error.message);
    })

  }

  public ReadData() {
    let storage = dataStorage.getStorageSync(this.path + '/mystore')
    let promise = storage.get('startup', 'default')
    promise.then((value) => {
      console.log("值为 " + value)
    }).catch((err) => {
      console.log("Get the value of startup failed with err: " + err)
    })

  }

  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Text('存储数据')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .onClick(this.PushData.bind(this))
      Text('读取数据')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .onClick(this.ReadData.bind(this))
    }
    .width('100%')
    .height('100%')
  }
}      
【Harmony OS】【ARK UI】轻量级数据存储

4.运行效果

继续阅读