隨筆-16  評論-50  文章-2  trackbacks-0

          摘要:大多數(shù)應(yīng)用程序都可以由用戶配置。配置文件是實現(xiàn)應(yīng)用程序靈活性的一個有效手段。Hibernate、Spring等應(yīng)用都需要配置文件。國際化的應(yīng)用程序也是通過和Locale有關(guān)配置文件來實現(xiàn)的。

           

          下面的內(nèi)容和Java應(yīng)用程序配置有關(guān)。

          • properties
            • properties文件
            • 系統(tǒng)信息
          • preferences

           

          properties的使用

          加載

          Properties prop = new Properties();
          prop.load(new FileInputStream("filename"));
          String value = prop.getProperties("key");

           

          存儲

          Properties prop = new Properties();
          prop.setProperties("key", "value");
          ...
          prop.store(new FileOutputStream("filename.properties"), "comments");

           

          默認值

          prop.getProperties("key", "default");

          或者:

          Properties defaultProp = new Properties();
          defaultProp.setProperties("key", "value");
          ...

          Properties prop = new Properties(defaultProp);
          prop.load(new FileInputStream("filename"));
          prop.getProperties("key");

           

          漢字

          手寫的Properties文件,如果含有非ISO-8859-1的字符,就要用native2ascii.exe工具來編譯了。eclipse中也有工具可以實現(xiàn)該功能。native2ascii的使用很簡單。

           

          結(jié)構(gòu)化的key

          font.name=Monospaced
          font.size=12

           

          枚舉key和values

          public Enumeration<?> propertyNames()

          size(), keys(), values

           

          XML

          <properties>
              <comment>comments</comment>
              <entry key="key">value</entry>
              ... ...
          </properties>

           

          Properties和Hashtabel的關(guān)系?

          Properties是Hashtable的子類。 這是一個壞的設(shè)計。Hashtable應(yīng)當只是Properties的一個實例變量。

          class Properties {
              public String getProperty(String) {...}
              public String setProperty(String, String) {...}
              ...
              private Hashtable entry;
              protected Properties defaults;
          }

          在Properties的API中有下面的一段話,Sun通過文檔來彌補設(shè)計上的缺陷。

          因為 Properties 繼承于 Hashtable,所以可對 Properties 對象應(yīng)用 put 和 putAll 方法。但強烈反對使用這兩個方法,因為它們允許調(diào)用方插入其鍵或值不是 Strings 的項。相反,應(yīng)該使用 setProperty 方法。如果在“有危險”的 Properties 對象(即包含非 String 的鍵或值)上調(diào)用 store 或 save 方法,則該調(diào)用將失敗。
          posted on 2008-01-10 04:40 Jeff Lau 閱讀(1353) 評論(0)  編輯  收藏 所屬分類: Jeff On Java 2008

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长寿区| 仪陇县| 塔城市| 义乌市| 正蓝旗| 特克斯县| 惠水县| 金山区| 赤水市| 土默特右旗| 青铜峡市| 原平市| 上林县| 贡觉县| 拜城县| 普格县| 五寨县| 安宁市| 阳信县| 兴和县| 泽库县| 岳池县| 临安市| 孟连| 长宁县| 太仓市| 易门县| 巴彦淖尔市| 大足县| 丽水市| 中宁县| 乌兰浩特市| 吐鲁番市| 新邵县| 三门峡市| 建水县| 改则县| 吉隆县| 合川市| 常德市| 黎川县|