Java 如何使用首选项 API?这些变量存储在哪里?

问题描述 投票:0回答:1

假设我有以下使用

Preferences
类的代码。

Preferences prefs = Preferences.userRoot().node(this.getClass().getName());

String ID1 = "Test1";

System.out.println(prefs.getBoolean(ID1, true));

prefs.putBoolean(ID1, false);

//prefs.remove(ID1);
  1. 下次执行程序时此变量是否会持续存在?
  2. 这些变量存储在哪里?
  3. 正确的使用方法是什么?
  4. 该方法比使用属性文件更好吗?
java preferences
1个回答
19
投票
  1. 是的,该值是持久的,但仅限于用户。其他用户不会看到它。
  2. 这是特定于操作系统的。对于 Windows,它使用注册表,对于 Linux,我相信它使用用户根目录中的隐藏文件,尽管我不是 100% 确定。
  3. 你的问题中有一个很好的例子。
  4. 它是不同,而不是更好。首选项是一种透明地存储应用程序设置的方式。这些设置可以由用户在运行时更新(例如,您可以使用首选项来存储用户特定设置)。首选项并不意味着可以在应用程序之外进行编辑。属性文件倾向于存储特定于应用程序的硬设置。这些设置对于每个用户来说都是相同的,并且往往不会经常更改。属性文件是文本文件,通常在部署时伴随应用程序。您可以使用文本编辑器轻松编辑它们。应用程序更新属性文件的情况相当罕见。
© www.soinside.com 2019 - 2024. All rights reserved.