java.util.prefs.Preferences(JDK 1.4+)提供跨平台的用戶/系統偏好配置存儲機制。適用於保存用戶設置(如窗口大小、最近打開文件、文本框最後值等),不適用於業務應用數據存儲。
~/.java/.userPrefs/)。開發者無需關心底層實現,API 自動適配平台。
import java.util.prefs.Preferences;
public class PreferenceTest {
private Preferences prefs;
public void setPreference() {
// 定義節點,通常使用類全名保證唯一性
prefs = Preferences.userRoot().node(this.getClass().getName());
String ID1 = "Test1", ID2 = "Test2", ID3 = "Test3";
// 讀取並指定默認值
System.out.println(prefs.getBoolean(ID1, true)); // 默認 true
System.out.println(prefs.get(ID2, "Hello World")); // 默認字符串
System.out.println(prefs.getInt(ID3, 50)); // 默認 50
// 寫入新值
prefs.putBoolean(ID1, false);
prefs.put(ID2, "Hello Europa");
prefs.putInt(ID3, 45);
// 刪除某鍵
prefs.remove(ID1);
}
public static void main(String[] args) {
new PreferenceTest().setPreference();
}
}
userRoot()(用戶級)或 systemRoot()(系統級)創建節點樹,避免不同應用衝突。getBoolean/getInt/getLong/getFloat/getDouble/get 等強類型讀取方法。getXxx(key, default) 方法在鍵不存在時返回默認值,避免空指針。flush() 強制同步(可能拋 BackingStoreException)。exportNode/exportSubtree 導出 XML,importPreferences 導入,便於配置遷移。