OpenHarmony——轻量级数据存储 原创 精华

深开鸿
发布于 2022-3-31 14:12
浏览
1收藏

作者:刘晓东

一、轻量级数据存储的版本

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

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-data-storage.md#轻量级存储

导入模块 API version开始支持版本 是否维护
import dataStorage from ‘@ohos.data.storage’ 6 从API Version 9开始不再维护
import data_Preferences from ‘@ohos.data.preferences’ 9 维护

二、应用目录的获取

数据存储需要获取到应用的存放目录,便于新建存储数据的文件。

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-Context.md

获取应用内部存储目录

Context.getFilesDir

名称 类型 必填 描述
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));
});

获取应用内部存储的缓存目录

Context.getCacheDir

名称 类型 必填 描述
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));
});

三、数据的写入和读取

  1. 读取指定文件,将数据加载到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返回的也是一个对象
    
  2. 获取键对应的值(获取数据get)

    参数名 类型 必填 说明
    key string 要获取的存储key名称。它不能为空。
    defValue ValueType 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。
    let value = storage.getSync('startup', 'default')
    
  3. 写入数据(put)

    参数名 类型 必填 说明
    key string 要修改的存储的key。它不能为空。
    value ValueType 存储的新值。支持number、string、boolean。
    storage.putSync('startup', 'auto')
    // 写入value值不为number、string或boolean时,调用读取该key的值时,返回的是读取时给定的默认值
    storage.flushSync()
    // 配合写入数据使用,当写入数据的文件不存在时,flushSync会自动创建该文件
    
  4. 删除指定键(delete)

    参数名 类型 必填 说明
    key string 要获取的存储key名称。它不能为空。
    storage.deleteSync('startup')
    
  5. 检查指定键是否存在(has)

    参数名 类型 必填 说明
    key string 要获取的存储key名称。它不能为空。
    let isExist = storage.hasSync('startup')
    
  6. 清除此存储对象中的所有存储

    storage.clearSync()
    

更多原创内容请关注:深开鸿技术团队

入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-3-31 14:12:15修改
2
收藏 1
回复
举报
回复
    相关推荐