> 文档中心 > HarmonyOS鸿蒙学习笔记(18)类似Android SharedPreferences保存数据

HarmonyOS鸿蒙学习笔记(18)类似Android SharedPreferences保存数据

类似Android SharedPreferences保存数据

  • 前言
  • 引入dataStorage和featureAbility
  • 保存数据
  • 读数

前言

android系统由SharedPreferences用来保存数据,HarmonyOS也有类似的手段保存一些数据,释放用法如下

引入dataStorage和featureAbility

引入@ohos.data.storage@ohos.ability.featureAbility两个包,本篇博文版本是3.1.6.6

//3.1.6.6版本import dataStorage from '@ohos.data.storage';//3.1.6.6版本import featureAbility from '@ohos.ability.featureAbility'@Entry@Componentstruct MyPage {}

保存数据

1、先通过featureAbility获取上下文
2、再通过上下文的getFilesDir获取路径,路径为/data/user/0/yourPackageName/files
3、调用dataStoragew完成数据存储

  //异步操作  async saveData() {    //获取上下文    var context = featureAbility.getContext()    //获取路径:/data/user/0/com.example.savedata/files    var path = await context.getFilesDir()    let storage = dataStorage.getStorageSync(path + '/myStore')    storage.putSync("myData", "false")    类似于SharePreference的apply()    storage.flushSync()  }

读数据

异步获取数据

  async getData() {    var context = featureAbility.getContext()    var path = await context.getFilesDir()    let storage = dataStorage.getStorageSync(path + '/myStore')    let result = storage.getSync("myData", "true");//第二个参数为默认值    return result === 'true' ? true : false;  }

因为getData方法是异步的,我们可以这么调用getData方法:

getData().then((value) => {      if (value) {//doSomething      }    })