Java如何使用首选项API存储程序配置?
java.util.prefs软件包中提供的PreferencesAPI可用于存储和检索应用程序配置。主要的阶级是Preferences阶级。使用此类,您可以管理首选项数据,例如存储,检索,删除和清除首选项数据。
首选项是数据的键值对。你可以存储在string,int,boolean和其他基本数据类型。您可以使用该get()方法从首选项节点中检索与键关联的值,并可以使用该方法在首选项节点put()中存储与键关联的值。要从首选项节点中删除与键关联的值,可以使用remove()方法。如果要清除首选项节点中的键,则可以使用该clear()方法。
这些首选项数据的实际存储取决于平台。例如,在Windows操作系统中,它存储在Windows注册表中。您必须知道,该PreferencesAPI并非旨在用于存储应用程序数据,您仅将其用于存储应用程序的配置。
让我们看一个使用PreferencesAPI的例子。
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 ============================