鸿蒙Next ArkTS中Preferences用法详解

在鸿蒙Next中使用ArkTS开发时,Preferences的具体用法有哪些?比如如何初始化、存储数据、读取数据和删除数据?能否提供一个完整的示例代码?另外,Preferences和LightKV有什么区别,在什么场景下更适合使用Preferences?

2 回复

鸿蒙Next的ArkTS中,Preferences就像手机里的“小本本”,用来存键值对数据。用法超简单:

  1. Preferences.getPreferences()打开本本。
  2. put()写数据,get()读数据。
  3. 记得flush()保存,不然数据会“蒸发”。 记住:别存大文件,它只爱记小秘密!

更多关于鸿蒙Next ArkTS中Preferences用法详解的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next的ArkTS中,Preferences是一个轻量级的本地数据存储方案,用于存储应用的简单配置信息(如用户设置、应用状态等)。它基于键值对(key-value)存储,数据以文件形式保存在设备本地,适用于非敏感、小数据量的场景。

基本用法

  1. 导入模块

    import preferences from '[@ohos](/user/ohos).data.preferences';
    
  2. 获取Preferences实例: 通过getPreferences方法获取实例,需指定上下文和存储文件名。

    let context = ...; // 获取UIAbility上下文
    let pref: preferences.Preferences = await preferences.getPreferences(context, 'mypref');
    
  3. 数据操作

    • 写入数据:使用put()方法,支持string、number、boolean等类型。
      await pref.put('key_string', 'value');
      await pref.put('key_number', 123);
      await pref.flush(); // 提交更改到文件
      
    • 读取数据:使用get()方法,需指定默认值。
      let value: string = await pref.get('key_string', 'default');
      
    • 删除数据:使用delete()方法。
      await pref.delete('key_string');
      
  4. 持久化与监听

    • 调用flush()确保数据写入磁盘。
    • 可通过on('change')监听数据变更。

完整示例

import preferences from '[@ohos](/user/ohos).data.preferences';
import common from '[@ohos](/user/ohos).app.ability.common';

async function example() {
  let context = getContext(this) as common.UIAbilityContext;
  let pref = await preferences.getPreferences(context, 'app_pref');

  // 写入数据
  await pref.put('username', 'Alice');
  await pref.put('age', 25);
  await pref.flush();

  // 读取数据
  let name = await pref.get('username', 'unknown');
  let age = await pref.get('age', 0);

  // 删除数据
  await pref.delete('age');
}

注意事项

  • 数据以异步方式操作,需使用await
  • 避免存储大量数据或敏感信息(如密码)。
  • 文件名需唯一,不同文件存储独立数据。

通过Preferences,可高效管理应用的轻量级本地配置,提升用户体验。

回到顶部