您现在的位置是:首页 >

mac应用程序预览不能打开 Java的秘密:将应用程序的设定存在哪里

火烧 2021-11-07 13:10:39 1071
Java的秘密:将应用程序的设定存在哪里   我们经常需要将我们的程序中的设定 如窗口位置 开启过的文件 用户的选项设定等数据记录下来 以做便用户下一次开启程序能继续使用这些数据 以前我们通常的做法是
mac应用程序预览不能打开 Java的秘密:将应用程序的设定存在哪里

Java的秘密:将应用程序的设定存在哪里  

  我们经常需要将我们的程序中的设定 如窗口位置 开启过的文件 用户的选项设定等数据记录下来 以做便用户下一次开启程序能继续使用这些数据 以前我们通常的做法是使用Properties类 它提供以下方法:    void load(InputStream inStream)  void store(OutputStream out String header)  String getProperty(String key   String defaultValue)  String getProperty(String key)    这些方法让我们很容易的存取设定数据 另外的办法是使用ResourceBundle这个类来储存设定数据 甚至有些程序作者使用一个自定结构的文件来储存设定数据 但不管怎样 最让程序作者头痛的是 我该将这些数据保存在哪?    现在好了 JDK 为我们提供的java util prefs包 里面有一个Preferences类 能让以上的工作变得极其轻松!    写VB程序的人常常用SaveSetting函数和getSettging来存取注册表中的用户设定数据 而Java的Preferences类也提供了类似的机制     Preferences类在不同的平台中有不同的实现方式 而在Windows平台中 Preferences是将数据保存在注册表中的      建立Preferences对象    为了区分不同的应用程序的参数项 在建立Preferences时要指定一个节点路径 Preferences是一个抽象类 提供了一系列静态方法和抽象方法来操作参数项:     抽象方法:    Preferences userData =  Preferences userNodeForPackage(this);  Preferences sysData =  Preferences systemNodeForPackage(this);    这两个方法是从指定的物件所在的包(package)返回一个节点路径 如this是javax swing JComponent 则返回/javax/swing     静态方法:    Preferences userData =  Preferences userRoot()   node( //sunway/spc );  Preferences sysData =  Preferences systemRoot()   node( //sunway/spc );    以上每种方式提供了两套操作方法 其中一套是用户参数项 另一套是系统参数项 在Windows平台中 用户参数项在注册表中的根节点是    HKEY_CURRENT_USERSofareJavaSoftPrefs    系统参数项在注册表中的根节点是    HKEY_LOCAL_MACHINESOFAREJavaSoftPrefs    而我们指定的节点路径是位于这些根节点之下的      如何读写数据    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)    下面的是读(get)的方法     get(String key String default)  getBoolean(String key boolean default)  getByteArray(String key byte default[])  getDouble(String key double default)  getFloat(String key float default)  getInt(String key int default)  getLong(String key long default)    注意 每一种get方法的第二个参数需要我们为它指定缺省的参数 除了以上方式之外 Preferences还允许我们将它的数据导出到一个XML文件保存     void exportNode(OutputStream os)  void exportSubtree(OutputStream os)    我们可以导出一个节点 或是导出整个子节点树     Preferences的一个演示以上的讲解足可以写一个示例来看看Preferences是如何为我们工作的 看看下面的例子:    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 pany    copyright };      Preferences prefsdemo =  Preferences userRoot()   node( //sunway/spc );      for (int i= ; i < keys length; i++)  {  prefsdemo put(keys[i] values[i]);  }      try  {  FileOutputStream fos = new  FileOutputStream( prefsdemo xml );  prefsdemo exportNode(fos);  } catch (Exception e)  {  System err println  ( Cannot export nodes: + e);  }          }  } lishixinzhi/Article/program/Java/JSP/201311/19784  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码