当前位置:网站首页>【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
边栏推荐
- 【暑期每日一题】洛谷 P1048 [NOIP2005 普及组] 采药
- [math] dot product and cross product
- 【学习笔记】AGC044
- “error“: { “root_cause“: [{ “type“: “circuit_breaking_exception“, “reason“: “[parent] D【已解决】
- 【数学建模绘图系列教程】绘图模板总结
- 360 评估反馈问题的示范案例
- 高效回顾深度学习DL、CV、NLP
- Ali YunTianChi competition problem (machine learning) - O2O coupons prediction (complete code)
- 【OpenCV】-查找并绘制轮廓
- 遗传力缺失的案例
猜你喜欢
随机推荐
全栈代码测试覆盖率及用例发现系统的建设和实践
【暑期每日一题】洛谷 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles
pr22.5最新版下载地址
阿里云天池大赛赛题(机器学习)——阿里云安全恶意程序检测(完整代码)
Efficient review of deep learning DL, CV, NLP
软件质效领航者 | 优秀案例•东风集团DevOps改革项目
Construction and practice of full stack code test coverage and use case discovery system
LeetCode-636. 函数的独占时间
[21天学习挑战赛——内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
npm package.json
2022下半年深圳信息系统项目管理师认证招生简章
Correct use of BaseDexClassLoader
换座位[异或巧妙的让奇偶互换]
EDI对接 New York & Company案例
2022 Security Officer-A Certificate Special Work Permit Exam Question Bank and Online Mock Exam
ceph创建存储池,映射,删除练习
TASSEL软件导入plink格式文件报错
gopacket使用示例
I.MX6U-ALPHA开发板(高精度定时器)
2022年8月深圳产品经理认证招生简章(NPDP)