成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JDK1.4下對WIN32注冊表的訪問實現

開發 后端
針對注冊表的訪問問題, Java 1.4有特殊的訪問能力,使您能夠操作用戶首選項數據和配置數據。那么具體是什么呢?本文向你介紹JDK1.4下對WIN32注冊表的訪問實現。

針對注冊表的訪問問題, Java 1.4 增加的 java.util.prefs 包,通過提供對特定于實現的注冊表(例如,Windows 平臺上的 Windows 注冊表)的訪問能力,使您能夠操作用戶首選項數據和配置數據。

您是不是曾經需要保存程序的配置數據但卻不知應將數據存儲在哪里? 雖然您可以使用屬性文件或資源束獲取這些信息,但 Java 平臺從未指定過用于存儲這些文件的標準位置。JSR 10 出現后一切都變了,它為 Java 1.4 API 提供增加的 java.util.prefs 包。存儲機制是特定于實現的細節,但程序員不必知道,也不必操心。對于 Windows 平臺,它的位置是在“Windows 注冊表”。 您雖然不能夠對注冊表自由控制,但您的確可以通過一個公共根節點訪問所有的應用程序。

開始

命名很恰當的 Preferences 類提供操作首選項的基本框架。這個類提供了一系列靜態和抽象方法來操作兩套首選項(其中一套是用戶首選項,另一套是系統首選項)中的其中一套。 使用靜態方法,您會得到一個特定于平臺的實現,就象 WindowsPreferences 類; 然后您可以使用由這個特定于平臺的實現實現的抽象方法來做這項工作。

用包將程序的首選項分組是個好習慣,可以避免與其它應用程序的命名沖突。 當您查找 Preferences 對象時,只需傳遞包的名稱。在使用非靜態方法時, 您可以傳遞對自身的引用(this),程序將為您確定查找的是哪個包,如清單 1 所示。

清單 1. 從非靜態方法獲取 Preferences 對象

  1. Preferences userPrefs = Preferences.userNodeForPackage(this);  
  2. Preferences sysPrefs = Preferences.systemNodeForPackage(this); 

但是,如果您使用的是靜態方法,您就必須得到根節點并自己提供包,如清單 2 所示。

清單 2. 從靜態方法獲取 Preferences 對象

  1. Preferences userPrefs = Preferences.userRoot().node("/net/zukowski/ibm");  
  2. Preferences sysPrefs = Preferences.systemRoot().node("/net/zukowski/ibm"); 

有了進行操作的節點后,您就可以輕松地設置、獲取、除去和轉儲設置選項。只要把 Preferences 對象當作一個大的鍵 — 值散列表(這個表把樹形結構中的鍵組織起來)。可它不是“集合框架”( Collections Framework)的部件,(關于“集合框架”的更多信息,請參閱參考資料)。

寫數據

我們將從討論如何存儲首選項開始。Preferences 類提供一系列 put() 方法,如下所示,用于存儲值。除支持基本的字符串之外,您還可以存儲布爾值、雙精度數、浮點數、整型數、長整型數和字節數組(考慮序列化)。助手方法采用適當的數據類型并執行必要的轉換以便將數據存儲為字符串。

  1. put(String key, String value)   
  2. putBoolean(String key, boolean value)   
  3. putByteArray(String key, byte value[])   
  4. putDouble(String key, double value)   
  5. putFloat(String key, float value)   
  6. putInt(String key, int value)   
  7. putLong(String key, long value) 

所有的 put() 方法都返回一個 void。如果存儲機制不可用,將拋出一個BackingStoreException。

注意:一個特定首選項的鍵長度被限制為 Preferences.MAX_KEY_LENGTH(80)個字符,而它的值被限制為 Preferences.MAX_VALUE_LENGTH(8192)個字符。

讀數據

可通過下面所示的一系列 get() 方法獲取特定的首選項。與寫數據相似,每種受支持的數據類型,都有自己的與眾不同的方法。但與獲取數據時不同的是,在備用存儲不可用,或有些東西尚未保存時您必須提供缺省值。這要求您確保自己的程序至少要有合理的缺省設置選項。

  1. get(String key, String default)   
  2. getBoolean(String key, boolean default)   
  3. getByteArray(String key, byte default[])   
  4. getDouble(String key, double default)   
  5. getFloat(String key, float default)   
  6. getInt(String key, int default)   
  7. getLong(String key, long default

如果您對首選項名稱不確定,您可以用 keys() 方法查找一列與節點相關聯的鍵。這個方法返回節點的 String[]。 除獲取和存儲個別首選項以及獲取一列關鍵字之外,您還可以用 clear()、remove() 和 removeNode() 除去節點和值。

轉儲數據

如果您想在系統提供的備用存儲器之外保存和恢復首選項,您可以在 XML 格式的文檔中執行這些操作。您可以用 exportNode() 導出一個節點或用 exportSubtree() 導出整個子樹。信息以 UTF-8 格式存儲。然后,當您想恢復信息時,可使用 importPreferences() 方法。

偵聽

“好奇心會害死一只貓”,但如果您對弄清除首選項何時改變很感興趣,您可以注冊一個 NodeChangeListener 或 PreferenceChangeListener,而不考慮隨之而來的后果。NodeChangeListener 負責通知您節點被添加和除去的時間, 而 PreferenceChangeListener 告訴您值的變化。這些都緊跟著基本 JavaBeans 組件事件用 add/removeNodeChangeListener(NodeChangeListener) 和 add/removePreferenceChangeListener() 方法處理結構之后發生。基本上,您先實現偵聽器,然后注冊偵聽器,這樣您會發現將來的變化。

那么通過介紹JDK1.4下對WIN32注冊表的訪問實現,大家是不是對這個JDK1.4的特殊能力感興趣呢?
 

【編輯推薦】

  1. JDK1.6在LINUX下的安裝配置
  2. JDK1.5中新的語言特征淺析
  3. 在JDK7 b50中將實現正則表達式命名捕獲組
  4. JDK日志框架介紹及其主要功能淺析
  5. JDK日志框架之自定義日志Handler淺析
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-07-07 11:17:14

JDK1.4環境配置

2009-07-09 11:43:22

JDK1.4assert

2009-07-09 09:09:46

JDK1.4

2009-02-01 10:10:00

Java資格認證JDK1.4JDK1.6

2009-07-09 11:21:08

JDK1.4安裝圖解

2010-05-25 17:45:00

MySQL備份

2011-04-21 09:10:16

2009-07-07 12:09:04

注冊表開發.NET Compac

2009-10-12 16:08:14

VB.NET訪問注冊表

2009-10-16 09:40:54

VB.NET訪問注冊表

2012-05-10 17:01:24

Win XP注冊表

2011-08-04 17:04:42

2011-09-16 14:22:31

注冊表windowsVist

2011-08-04 16:37:09

注冊表編輯器注冊表

2011-08-03 18:01:40

注冊表

2009-10-22 18:09:10

linux虛擬機

2009-07-22 18:55:29

2011-08-03 15:40:09

注冊表注冊表編輯器

2010-06-09 09:05:35

非安裝版MySQL

2009-08-21 09:43:49

C#編輯注冊表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线观看免费视频 | 久久精品国产清自在天天线 | 国产一级成人 | 日韩三级电影在线看 | 日韩成人在线观看 | a级性视频| 一区二区三区四区电影视频在线观看 | 欧美一区不卡 | 久久精品久久久 | 91av视频在线 | 在线一区 | 国产成都精品91一区二区三 | 日韩视频一区二区在线 | 欧美激情久久久久久 | 亚洲天堂中文字幕 | 国产美女一区二区 | 日韩成人影院 | 美女131mm久久爽爽免费 | 亚洲精品免费在线观看 | 欧美精品99 | 免费午夜剧场 | 日韩精品免费 | 日韩插插| 91在线精品秘密一区二区 | 日韩av一区二区在线 | 国产一区精品 | 亚洲一区二区三区四区五区午夜 | 日韩视频精品在线 | 日韩av在线一区 | 欧美日韩在线电影 | 免费观看一级特黄欧美大片 | 国产精品毛片一区二区三区 | 免费看国产a | www视频在线观看 | 久久成人久久 | 中文字幕在线免费观看 | 玖玖玖在线观看 | 欧美一区二区三区四区视频 | 中文字幕亚洲视频 | 成人免费福利 | 久久精品一区二区 |