
回复
作者:刘晓东
openharmony的轻量级数据存储现有两个版本,但是harmonyOS的官网上只有一个轻量级数据存储。
导入模块 | API version开始支持版本 | 是否维护 |
---|---|---|
import dataStorage from ‘@ohos.data.storage’ | 6 | 从API Version 9开始不再维护 |
import data_Preferences from ‘@ohos.data.preferences’ | 9 | 维护 |
数据存储需要获取到应用的存放目录,便于新建存储数据的文件。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
callback | AsyncCallback<string> | 是 | 返回内部存储器上此应用程序的文件目录。 |
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));
});
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
callback | AsyncCallback<string> | 是 | 返回该应用程序的内部存储目录。 |
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实例,用于数据操作
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 应用程序内部数据存储路径。 |
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)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 要获取的存储key名称。它不能为空。 |
defValue | ValueType | 是 | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 |
let value = storage.getSync('startup', 'default')
写入数据(put)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 要修改的存储的key。它不能为空。 |
value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |
storage.putSync('startup', 'auto')
// 写入value值不为number、string或boolean时,调用读取该key的值时,返回的是读取时给定的默认值
storage.flushSync()
// 配合写入数据使用,当写入数据的文件不存在时,flushSync会自动创建该文件
删除指定键(delete)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 要获取的存储key名称。它不能为空。 |
storage.deleteSync('startup')
检查指定键是否存在(has)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 要获取的存储key名称。它不能为空。 |
let isExist = storage.hasSync('startup')
清除此存储对象中的所有存储
storage.clearSync()
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。