当前位置:网站首页>【Harmony OS】【ARK UI】轻量级数据存储
【Harmony OS】【ARK UI】轻量级数据存储
2022-08-09 04:44:00 【华为开发者论坛】
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'@[email protected] 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/?ha_source=zzh
边栏推荐
- OKR管理过程中,如何运用CFR实现组织的高效对话、反馈和认可?
- 串扰与防护
- 阿里云天池大赛赛题(机器学习)——阿里云安全恶意程序检测(完整代码)
- 抖音直播新号怎么起号?抖音直播间不进人怎么办?
- [OpenCV] - Find and draw contours
- Ridge regression and LASSO regression
- Ali YunTianChi competition problem (deep learning) - video enhancement (complete code)
- FFmpeg编译支持x264/openH264/dash
- Correct use of BaseDexClassLoader
- Divisible property 1
猜你喜欢

Ali YunTianChi competition problem (machine learning) - O2O coupons prediction (complete code)

JS-DOM-全局、局部、隐式变量,数组()\函数、 prompt输入对话框、confirm(确定用户的决定-弹出对话框)

软件质效领航者 | 优秀案例•国金证券DevOps建设项目

MySQL:redo log日志——笔记自用

杰理之ANC OFF语音没有作用【篇】

leetcode:315. 计算右侧小于当前元素的个数
![换座位[异或巧妙的让奇偶互换]](/img/af/75964462af6fa550dc16eaf087e354.png)
换座位[异或巧妙的让奇偶互换]

y91.第六章 微服务、服务网格及Envoy实战 -- 服务网格基础(二)

稳定性测试怎么做,这篇文章彻底讲透了!

Masked AutoEncoder论文及实现
随机推荐
器件可靠性与温度的关系
php使用phpoffice/phpspreadsheet导入导出excel表格
关于sys.path.append(‘..‘)失效
必须指定GDAL API版本。提供一个路径使用GDAL_CONFIG gdal-config环境
LeetCode-636. 函数的独占时间
Talking about the process and how to create it
TASSEL软件导入plink格式文件报错
杰理之一拖二 另一台手机超距 通话会无声【篇】
MySql.Data.MySqlClient.DBNull
【暑期每日一题】洛谷 P5724 【深基4.习5】求极差 / 最大跨度值
【学习笔记】AGC044
LeetCode - remove consecutive nodes with a sum of zero from a linked list
JVM垃圾回收机制简介
2022R1快开门式压力容器操作考试模拟100题及在线模拟考试
亚马逊面对风控,自养号测评时应该怎么做?
Improve the user experience and add a small detail to your modal popup
XJTUSE Professional Course and Experiment Guide
配置网络接口的“IP“命令
etcd Study Notes - Getting Started
阿里云天池大赛赛题(深度学习)——视频增强(完整代码)