首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

使用 Java Preferences API 操作 Windows 登錄檔

     編輯:Java 程式設計入門

Preferences API 簡介

JDK 1.4 引入 java.util.prefs.Preferences,提供跨平台的使用者偏好設定儲存。在 Windows 上,它自動映射到登錄檔,無需 JNI 或原生程式碼即可讀寫登錄檔鍵值。

寫入登錄檔範例

import java.io.*;
import java.util.prefs.*;

public class PrefsDemo {
  public static void main(String[] args) {
    String[] keys = {"sunway", "copyright", "author"};
    String[] values = {"sunway technology company", "copyright 2002", "turbochen@163.com"};

    // 取得使用者根節點下的 /com/sunway/spc 節點
    Preferences prefs = Preferences.userRoot().node("/com/sunway/spc");

    // 寫入鍵值對
    for (int i = 0; i < keys.length; i++) {
      prefs.put(keys[i], values[i]);
    }

    // 匯出為 XML 檔案(備份/遷移)
    try (FileOutputStream fos = new FileOutputStream("prefsdemo.xml")) {
      prefs.exportNode(fos);
    } catch (Exception e) {
      System.err.println("Cannot export nodes: " + e);
    }

    // 刪除節點(取消註解以清除)
    // try { prefs.removeNode(); } catch (BackingStoreException e) {}
  }
}

執行後驗證

  1. 執行程式。
  2. 開啟 regedit,搜尋 sunway,可在 HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\sunway\spc 看到寫入的鍵值。

讀取與其他操作

  • prefs.get(key, defaultValue):讀取字串值。
  • prefs.getInt(key, default)、getLong()、getBoolean() 等型別方法。
  • prefs.keys()、childrenNames():列舉鍵與子節點。
  • prefs.remove(key):刪除單一鍵值。
  • prefs.sync()、flush():強制同步至持久儲存。

注意事項

  • 節點路徑建議使用反向網域名(如 /com/example/app)避免衝突。
  • 系統根節點 Preferences.systemRoot() 需管理員權限,通常用於安裝時設定。
  • XML 匯出/匯入適合部署時預載設定。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved