> 文档中心 > 【Harmony OS】【ARK UI】轻量级数据存储

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

 1、轻量级数据存储概述

 

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

2、使用场景

2.1 轻量级数据存储功能通常用于保存应用的一些常用配置信息,并不适合需要存储大量数据和频繁改变数据的场景。应用的数据保存在文件中,这些文件可以持久化地存储在设备上。需要注意的是,应用访问的实例包含文件所有数据,这些数据会一直加载在设备的内存中,直到应用主动从内存中将其移除前,应用可以通过Preferences的API进行数据操作。
轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。

3、代码实现

import dataStorage from '@ohos.data.storage'import ability_featureAbility from '@ohos.ability.featureAbility'@Entry@Componentstruct 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%')  }}

4.运行效果

 

欲了解更多更全技术文章,欢迎访问:https://developer.huawei.com/consumer/cn/forum/topic/0201817218957430007?fid=0102683795438680754?ha_source=zzh