java.util.prefs软件包中提供的Preferences API可用于存储和检索应用程序配置。主要的阶级是Preferences阶级。使用此类,您可以管理首选项数据,例如存储,检索,删除和清除首选项数据。
首选项是数据的键值对。你可以存储在string,int,boolean和其他基本数据类型。您可以使用该get()方法从首选项节点中检索与键关联的值,并可以使用该方法在首选项节点put()中存储与键关联的值。要从首选项节点中删除与键关联的值,可以使用remove()方法。如果要清除首选项节点中的键,则可以使用该clear()方法。
这些首选项数据的实际存储取决于平台。例如,在Windows操作系统中,它存储在Windows注册表中。您必须知道,该Preferences API并非旨在用于存储应用程序数据,您仅将其用于存储应用程序的配置。
让我们看一个使用Preferences API的例子。
package org.nhooo.example.util;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
public class PreferencesExample {
public static void main(String[] args) {
PreferencesExample demo = new PreferencesExample();
demo.setPreferences();
}
private void setPreferences() {
// 定义一个节点来存储首选项数据。
Preferences pref = Preferences.userRoot().node(getClass().getName());
String key1 = "KEY1";
String key2 = "KEY2";
String key3 = "KEY3";
// 读取KEY1的值,如果该值返回一个空字符串
// 以前没有设置过。
String key1Value = pref.get(key1, "");
System.out.println("KEY1: " + key1Value);
// 读取KEY2的值,如果它不是一个整数
// 先前设置为返回-1。
int key2Value = pref.getInt(key2, -1);
System.out.println("KEY2: " + key2Value);
// 读取KEY3的值,如果未设置任何值,则返回true
// 先前。
boolean key3Value = pref.getBoolean(key3, true);
System.out.println("KEY3: " + key3Value);
// 设置上面所有首选项键的值。
if (key1Value.equals("")) {
pref.put(key1, "January");
}
if (key2Value == -1) {
pref.putInt(key2, 1000);
}
if (key3Value) {
pref.putBoolean(key3, false);
}
printKeys(pref);
// 从首选项数据中删除KEY1。
pref.remove(key1);
printKeys(pref);
try {
// 删除该节点的所有首选项数据。
pref.clear();
} catch (BackingStoreException e) {
e.printStackTrace();
}
printKeys(pref);
}
/**
* Print Keys in the preferences node.
* @param pref Preference node.
*/
private void printKeys(Preferences pref) {
System.out.println("PreferencesExample.printKeys");
try {
String[] keys = pref.keys();
for (String key : keys) {
System.out.println("Key = " + key);
}
} catch (BackingStoreException e) {
e.printStackTrace();
}
System.out.println("============================");
}
}这是运行上面的示例时将获得的输出:
KEY1: KEY2: -1 KEY3: true PreferencesExample.printKeys Key = KEY1 Key = KEY2 Key = KEY3 ============================ PreferencesExample.printKeys Key = KEY2 Key = KEY3 ============================ PreferencesExample.printKeys ============================