JDK1.4下实现访问WIN32注册表 - 编程入门网
JDK1.4下实现访问WIN32注册表时间:2010-12-10为 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 对象 Preferences userPrefs = Preferences.userNodeForPackage(this); Preferences sysPrefs = Preferences.systemNodeForPackage(this); 但是,如果您使用的是静态方法,您就必须得到根节点并自己提供包,如清单 2 所示。 清单 2. 从静态方法获取 Preferences 对象 Preferences userPrefs = Preferences.userRoot().node("/net/zukowski/ibm"); Preferences sysPrefs = Preferences.systemRoot().node("/net/zukowski/ibm"); 有了进行操作的节点后,您就可以轻松地设置、获取、除去和转储设置选项。只要把 Preferences 对象当作一个大的键 — 值散列表(这个表把树形结构中的键组织起来)。可它不是“集合框架”( Collections Framework)的部件,(关于“集合框架”的更多信息,请参阅参考资料)。 写数据 我们将从讨论如何存储首选项开始。Preferences 类提供一系列 put() 方法,如下所示,用于存储值。除支持基本的字符串之外,您还可以存储布尔值、双精度数、浮点数、整型数、长整型数和字节数组(考虑序列化)。助手方法采用适当的数据类型并执行必要的转换以便将数据存储为字符串。 put(String key, String value) putBoolean(String key, boolean value) putByteArray(String key, byte value[]) putDouble(String key, double value) putFloat(String key, float value) putInt(String key, int value) putLong(String key, long value) 所有的 put() 方法都返回一个 void。如果存储机制不可用,将抛出一个BackingStoreException。 注意:一个特定首选项的键长度被限制为 Preferences.MAX_KEY_LENGTH(80)个字符,而它的值被限制为 Preferences.MAX_VALUE_LENGTH(8192)个字符。 JDK1.4下实现访问WIN32注册表(2)时间:2010-12-10读数据 可通过下面所示的一系列 get() 方法获取特定的首选项。与写数据相似,每种受支持的数据类型,都有自己的与众不同的方法。但与获取数据时不同的是,在备用存储不可用,或有些东西尚未保存时您必须提供缺省值。这要求您确保自己的程序至少要有合理的缺省设置选项。 get(String key, String default) getBoolean(Strin |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |