<menu id="a2esi"><strong id="a2esi"></strong></menu>
  • <nav id="a2esi"></nav>
    學校總部  | 設為首頁 | 加入收藏 | 官方微信
    內威培訓
    打造“培訓+就業”一站式服務品牌!
    banner1
    • Python+AI工程師
    • Web前端工程師
    • Java軟件開發工程師

    首頁>>學員天地

    Properties類應用詳解
    編輯:simon  閱讀:2615次  發布:14-09-25

    一、Java Properties

       Java中有個比較重要的類PropertiesJava.util.Properties),主要用于讀取Java的配置文件,各種語言都有自己所支持的配置文件,配置文件中很多變量是經常改變的,這樣做也是為了方便用戶,讓用戶能夠脫離程序本身去修改相關的變量設置。在Java中,其配置文件常為.properties文件,格式為文本文件,文件的內容的格式是“鍵=值”的格式,文本注釋信息可以用"#"來注釋。

    Properties類繼承自Hashtable,它提供了幾個主要的方法:

    1getProperty ( String key),用指定的鍵在此屬性列表中搜索屬性。通過參數 key,得到key所對應的value

    2load ( InputStream inStream),從輸入流中讀取屬性列表(鍵和元素對)。通過對指定的文件(比如說上面的 test.properties 文件)進行裝載來獲取該文件中的所有鍵-值對。以供 getProperty ( String key) 來搜索。

    3setProperty ( String key, String value) ,通過調用基類的put方法來設置鍵-值對。

    4store ( OutputStream out, String comments),以適合使用 load 方法加載到 Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流。與 load 方法相反,該方法將鍵-值對寫入到指定的文件中去。

    5clear (),清除所有裝載的鍵-值對。該方法在基類中提供。

     

     二、Java讀取Properties文件

       Java讀取Properties文件的方法有很多,最常用的還是通過java.lang.Class類的getResourceAsStream(String name)方法來實現,如下可以這樣調用:

       InputStream in = getClass().getResourceAsStream("資源Name");

     下面這種也常用:

    InputStream in = new BufferedInputStream(new FileInputStream(filepath));

     

    三、相關實例

    1、獲取JVM的系統屬性

     import java.util.Properties;

     public class ReadJVM {

         public static void main(String[] args) {

             Properties pps = System.getProperties();

             pps.list(System.out);

         }

     } 

    2、隨便新建一個配置文件(Test.properties

    name=JJ

    Weight=4444

    Height=3333 

    public class getProperties {

         public static void main(String[] args) throws FileNotFoundException, IOException {

             Properties pps = new Properties();

             pps.load(new FileInputStream("Test.properties"));

             Enumeration enum1 = pps.propertyNames();//得到配置文件的名字

             while(enum1.hasMoreElements()) {

                 String strKey = (String) enum1.nextElement();

                 String strValue = pps.getProperty(strKey);

                 System.out.println(strKey + "=" + strValue);

             }

         }

     } 

     

    3、一個比較綜合的實例

     public class TestProperties {

         //根據Key讀取Value

         public static String GetValueByKey(String filePath, String key) {

             Properties pps = new Properties();

             try {

                 InputStream in = new BufferedInputStream (new FileInputStream(filePath));  

                 pps.load(in);

                 String value = pps.getProperty(key);

                 System.out.println(key + " = " + value);

                 return value;

                 

             }catch (IOException e) {

                 e.printStackTrace();

                 return null;

             }

         }

         

       //讀取Properties的全部信息

         public static void GetAllProperties(String filePath) throws IOException {

             Properties pps = new Properties();

             InputStream in = new BufferedInputStream(new FileInputStream(filePath));

             pps.load(in);

        Enumeration en = pps.propertyNames(); //得到配置文件的名字

             while(en.hasMoreElements()) {

                 String strKey = (String) en.nextElement();

                 String strValue = pps.getProperty(strKey);

                 System.out.println(strKey + "=" + strValue);

             }

             

         }

         

         //寫入Properties信息

         public static void WriteProperties (String filePath, String pKey, String pValue) throws IOException {

             Properties pps = new Properties();

            InputStream in = new FileInputStream(filePath);

             pps.load(in);

             OutputStream out = new FileOutputStream(filePath);

             pps.setProperty(pKey, pValue);

            pps.store(out, "Update " + pKey + " name");

         }

         

         public static void main(String [] args) throws IOException{

             //String value = GetValueByKey("Test.properties", "name");

             //System.out.println(value);

             //GetAllProperties("Test.properties");

             WriteProperties("Test.properties","long", "212");

         }

     } 

     

     

    結果:

    Test.properties中文件的數據為:

    #Update long name

    #Sun Feb 23 18:17:16 CST 2014

    name=JJ

    Weight=4444

    long=212

    Height=3333



    上一篇: java 字符串函數的用法和實例演示   下一篇: JAVA環境變量配置java_home,classpath等的作用
    返回列表
    網絡大專、自考本科,學歷輕松拿!
    ©2016-2020 上海內威職業技能培訓學校 版權所有
    普陀區武寧路1500號中樓2-3層(郵編:200062)
    咨詢:021-62434966  合作:021-13371929650  就業:021-62434966  傳真:  電郵:service@snetway.com
    《中華人民共和國電信與信息服務業務》經營許可證滬ICP備15002602號 
    <menu id="a2esi"><strong id="a2esi"></strong></menu>
  • <nav id="a2esi"></nav>
    本溪娱网棋牌