OpenHarmony开源社区
直播中

王璐

8年用户 490经验值
私信 关注
[经验]

深度剖析OpenHarmony轻量级数据存储

一、轻量级数据存储的版本
openharmony的轻量级数据存储现有两个版本,但是harmonyOS的官网上只有一个轻量级数据存储。

二、应用目录的获取
数据存储需要获取到应用的存放目录,便于新建存储数据的文件。
获取应用内部存储目录
Context.getFilesDir

import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getFilesDir();
context.getFilesDir((err, data) => {
    if (err) {
        console.error('Operation failed. Cause: ' + JSON.stringify(err));
        return;
    }
    console.info('Operation successful. Data:' + JSON.stringify(data));
});
获取应用内部存储的缓存目录
Context.getCacheDir

import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getCacheDir();
context.getCacheDir((err, data) => {
    if (err) {
        console.error('Operation failed. Cause: ' + JSON.stringify(err));
        return;
    }
    console.info('Operation successful. Data:' + JSON.stringify(data));
});
三、数据的写入和读取
读取指定文件,将数据加载到Preferences实例,用于数据操作



import dataStorage from '@ohos.data.storage'
let storage = dataStorage.getStorageSync(path + '/mystore')
// storage 提供获取和修改存储数据的接口。
// 注意事项
// 1. path路径在设备中必须是存在的,如果不存在会报: InternalError: code: (null), message: assertion (preference != nullptr) failed: failed to call native
// 2. /mystore可以不存在,当其不存在时storage返回的也是一个对象
获取键对应的值(获取数据get)


let value = storage.getSync('startup', 'default')
写入数据(put)



storage.putSync('startup', 'auto')
// 写入value值不为number、string或boolean时,调用读取该key的值时,返回的是读取时给定的默认值
storage.flushSync()
// 配合写入数据使用,当写入数据的文件不存在时,flushSync会自动创建该文件
删除指定键(delete)


storage.deleteSync('startup')
检查指定键是否存在(has)


let isExist = storage.hasSync('startup')
清除此存储对象中的所有存储

storage.clearSync()

更多回帖

发帖
×
20
完善资料,
赚取积分