Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65726
  • 博文数量: 19
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-26 19:05
文章分类
文章存档

2011年(2)

2010年(3)

2009年(11)

2008年(3)

我的朋友

分类: Java

2011-05-27 23:58:26

如果我说Java里面可以不使用JNI的手段操作Windows的注册表你信不信?很多软件 的菜单里都有“Setting”或“Preferences”这样的选项用来设定或修改软件的配置,这些配置信息可以保存到一个像上面所述的配置文件当 中,如果是Windows平台下,也可能会保存到系统注册表中。从JDK 1.4开始,Java在下 加入了一个专门处理用户和系统配置信息的包, 其中一个类是 一种比较“高级”的玩意。从本质上讲,Preferences本身是一个与平台无关的东西,但不同的OS对它的 SPI(Service Provider Interface)的实现却是与平台相关的,因此,在不同的系统中你可能看到首选项保存为本地文件、 LDAP目录项、数据库条目等,像在Windows平台下,它就保存到了系统注册表中。不仅如此,你还可以把首选项导出为XML文件或从XML文件导 入。

主要类与方法和描述 

  1. systemNodeForPackage() //根据指定的Class对象得到一个Preferences对象,这个对象的注册表路径是从 “HKEY_LOCAL_MACHINE\”开始的 
  2. systemRoot() //得到以注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Javasoft \Prefs 为根结点的Preferences对象 
  3. userNodeForPackage() //根据指定的Class对象得到一个Preferences对象,这个对象的注册表路径 是从“HKEY_CURRENT_USER\”开始的 
  4. userRoot() //得到以注册表路径HKEY_CURRENT_USER\SOFTWARE\Javasoft \Prefs 为根结点的Preferences对象 
  5. putXXX() //设置一个属性的值,这里XXX可以为基本数值型类型,如int、long等,但首字母大写,表示参数为相应的类 型,也可以不写而直接用put,参数则为字符串 
  6. getXXX() //得到一个属性的值 
  7. exportNode() //将全部首选项导出为一个XML文件 
  8. exportSubtree() //将部分首选项导出为一个XML文件 
  9. importPreferences() //从XML文件导入首选项 

    你可以按如下步骤保存数据:

  1. Preferences myPrefs1 = Preferences.userNodeForPackage(this);// 这种方法是 在“HKEY_CURRENT_USER\”下按当前类的路径建立一个注册表项
  2. Preferences myPrefs2 = Preferences.systemNodeForPackage(this); // 这种方法是在“HKEY_LOCAL_MACHINE\”下按当前类的路径建立一个注册表项
  3. Preferences myPrefs3 = Preferences.userRoot().node("com.jungleford.demo"); // 这种方法是在“HKEY_CURRENT_USER\SOFTWARE\Javasoft\Prefs\”下按“com\jungleford \demo”的路径建立一个注册表项
  4. Preferences myPrefs4 = Preferences.systemRoot().node("com.jungleford.demo"); // 这种方法是在“HKEY_LOCAL_MACHINE\SOFTWARE\Javasoft\Prefs\”下按“com\jungleford \demo”的路径建立一个注册表项
  5. myPrefs1.putInt("key1", 10);
  6. myPrefs1.putDouble("key2", -7.15);
  7. myPrefs1.put("key3", "value3");
  8. FileOutputStream out = new FileOutputStream("prefs.xml");
  9. myPrefs1.exportNode(out);
阅读(649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~