当前位置:网站首页>【Harmony OS】【ARK UI】轻量级数据存储
【Harmony OS】【ARK UI】轻量级数据存储
2022-08-03 04:21:00 【华为开发者论坛】
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
@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%')
}
}
4.运行效果
欲了解更多更全技术文章,欢迎访问:https://developer.huawei.com/consumer/cn/forum/topic/0201817218957430007?fid=0102683795438680754?ha_source=zzh |
边栏推荐
猜你喜欢
Problems that need to be solved for interrupting the system
Can Oracle EMCC be installed independently?Or does it have to be installed on the database server?
工程制图点的投影练习
OpenFOAM提取等职面并计算面积
Record some bugs encountered - when mapstruct and lombok are used at the same time, the problem of data loss when converting entity classes
Shell之条件语句
社交电商:流量红利已尽,裂变营销是最低成本的获客之道
如何利用 Flutter 实现炫酷的 3D 卡片和帅气的 360° 展示效果
IO进程线程->线程->day5
6.神经网络剖析
随机推荐
【STM32】入门(四):外部中断-按键通过中断动作
肖sir__面试就业课___数据库
"Obs" start pushing flow failure: the Output. The StartStreamFailed call process
mysql 创建索引的三种方式
MCM箱模型建模方法及大气O3来源解析
Linux-Docker-Redis安装
自组织是管理者和成员的双向奔赴
urlencode 和rawurlencode的区别
肖sir ——自动化讲解
移动流量的爆发式增长,社交电商如何选择商业模式
SeleniumWebDriver扩展插件开发
CyberArk被评为2022年Gartner特权访问管理魔力象限领导者
Live | StarRocks technology insider: low base dictionary global optimization
常见荧光染料修饰多种基团及其激发和发射波长数据一览数据
2.何为张量
8.电影评论分类:二分类问题
Shell编程的条件语句
三丁基-巯基膦烷「tBuBrettPhos Pd(allyl)」OTf),1798782-17-8
Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
基于WPF重复造轮子,写一款数据库文档管理工具(一)