这里包含了主要的几个步骤 加载偏好设置的存储值


import preferences from '@ohos.data.preferences'
import debugLog from './LogManager'

class PrefrencesUtil {

  prefMap : Map<string, preferences.Preferences> = new Map()
  
  // 加载偏好设置
  async loadPrefrences(context: Context, name: string) {
    try {
      let pref = await preferences.getPreferences(context, name)
      this.prefMap.set(name, pref)

      debugLog(`加载偏好设置 ${name} 成功`)
    } catch (e) {
      debugLog(`加载偏好设置 ${name} 失败, 原因是 ${JSON.stringify(e)}}`)
    }
  }

  // 添加偏好设置值
  async putPrefrences(name: string, key: string, value: preferences.ValueType) {
    if (!this.prefMap.has(name)) {
      debugLog(`${name}尚未初始化`)
      return
    }
    try {
      let pref = this.prefMap.get(name)
      // 写入数据
      await pref?.put(key, value)
      // 刷新磁盘
      await pref?.flush()
      debugLog(`保存 ${name} ${key}} = ${value} 成功`)
    } catch (e) {
      debugLog(`保存偏好设置 ${name} 失败, 原因是 ${JSON.stringify(e)}}`)
    }
  }

  // 获取偏好设置值
  async getPrefrenceValue(name: string, key: string, defaultValue: preferences.ValueType) {
    if (!this.prefMap.has(name)) {
      debugLog(`${name}尚未初始化`)
      return Object()
    }
    try {
      let pref = this.prefMap.get(name)
      // 写入数据
      let value = await pref?.get(key, defaultValue)
      debugLog(`读取 ${name} ${key} = ${value} 成功`)
      return value
    } catch (e) {
      debugLog(`保存偏好设置 ${name} 失败, 原因是 ${JSON.stringify(e)}}`)
    }
  }
  
  // 删除偏好设置值
  async deletePrefrenceValue(name: string, key: string) {
    if (!this.prefMap.has(name)) {
      debugLog(`${name}尚未初始化`)
      return Object()
    }
    try {
      let pref = this.prefMap.get(name)
      // 删除数据
      await pref?.delete(key)
      // 刷新下磁盘数据
      await pref?.flush()
      debugLog(`删除 ${name} ${key} 成功`)
    } catch (e) {
      debugLog(`删除偏好设置 ${name} 失败, 原因是 ${JSON.stringify(e)}}`)
    }
  }
}

const prefrencesUtil = new PrefrencesUtil()
export default prefrencesUtil as PrefrencesUtil

下面简单的演示下增删改查的操作

// 轻量数据操作 增删改查
Button('增加').onClick(async(event: ClickEvent) => {
  await PrefrencesUtil.putPrefrences('MyPrefrences', 'name1', '我修改了小刚')
})
Button('删除').onClick(async(event: ClickEvent) => {
  await PrefrencesUtil.deletePrefrenceValue('MyPrefrences', 'name')
})
Button('修改').onClick(async(event: ClickEvent) => {
  await PrefrencesUtil.putPrefrences('MyPrefrences', 'name', '我修改了小刚')
})
Button('查找').onClick(async(event: ClickEvent) => {
  this.message = await PrefrencesUtil.getPrefrenceValue('MyPrefrences', 'name', '小刚') as string
})