Java 的 Preferences API 提供了一种简单的方式来存储和检索用户或系统级别的首选项(键值对数据)。这些数据可以持久化存储,例如保存用户设置。
下面是一个 最简单的例子:
示例:保存和读取用户首选项
import java.util.prefs.Preferences;public class PreferencesExample {public static void main(String[] args) {// 获取用户首选项节点Preferences prefs = Preferences.userRoot().node("com/example");// 保存首选项prefs.put("username", "Alice"); // 存储一个字符串prefs.putInt("highscore", 200); // 存储一个整数// 读取首选项String username = prefs.get("username", "DefaultUser"); // 默认值为 "DefaultUser"int highscore = prefs.getInt("highscore", 0); // 默认值为 0// 打印读取的值System.out.println("用户名: " + username);System.out.println("最高分: " + highscore);// 删除首选项prefs.remove("username");// 再次读取,检查默认值是否生效username = prefs.get("username", "DefaultUser");System.out.println("用户名(已删除后): " + username);}
}
代码运行说明
-
存储数据:
prefs.put(key, value)
:存储一个键值对。prefs.putInt(key, value)
:存储一个整数。
-
读取数据:
prefs.get(key, defaultValue)
:读取数据,如果找不到键,就返回默认值。prefs.getInt(key, defaultValue)
:读取整数数据。
-
删除数据:
prefs.remove(key)
:删除指定键的值。
-
节点(Node):
Preferences.userRoot()
:获取用户级别的首选项节点。.node("com/example")
:指定一个自定义节点路径,避免键冲突。
运行结果示例
如果运行上述代码,输出可能如下:
用户名: Alice
最高分: 200
用户名(已删除后): DefaultUser
适用场景
- 保存用户设置,例如用户名、窗口大小、主题颜色等。
- 存储小型配置信息,不需要额外依赖配置文件。
注意事项
- 数据存储位置:不同操作系统会有不同的存储位置,通常是操作系统的注册表或文件系统。
- 限制:Preferences API 适合轻量级数据存储。如果需要复杂数据或大文件,推荐使用数据库或配置文件(如 JSON/XML)。