Java加載properties文件實現(xiàn)方式詳解
java加載properties文件的方式主要分為兩大類:一種是通過import java.util.Properties類中的load(InputStream in)方法加載;
另一種是通過import java.util.ResourceBundle類的getBundle(String baseName)方法加載。
注意:一定要區(qū)分路徑格式
實現(xiàn)代碼如下:
package com.util;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.PropertyResourceBundle;import java.util.ResourceBundle;public class PropertiesUtil { private static String basePath = 'src/prop.properties'; private static String name = ''; private static String nickname = ''; private static String password = ''; /** * 一、 使用java.util.Properties類的load(InputStream in)方法加載properties文件 * */ public static String getName1() { try { Properties prop = new Properties(); InputStream is = new FileInputStream(basePath); prop.load(is); name = prop.getProperty('username'); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return name; } /** * 二、 使用class變量的getResourceAsStream()方法 * 注意:getResourceAsStream()讀取路徑是與本類的同一包下 * */ public static String getName2() { Properties prop = new Properties(); InputStream is = PropertiesUtil.class.getResourceAsStream('/com/util/prop.properties'); try { prop.load(is); name = prop.getProperty('username'); } catch (IOException e) { e.printStackTrace(); } return name; } /** * 三、 * 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 * getResourceAsStream(name)方法的參數(shù)必須是包路徑+文件名+.后綴 否則會報空指針異常 * */ public static String getName3() { Properties prop = new Properties(); InputStream is = PropertiesUtil.class.getClassLoader().getResourceAsStream('com/util/prop.properties'); try { prop.load(is); } catch (IOException e) { e.printStackTrace(); } return name; } /** * 四、 使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態(tài)方法 * getSystemResourceAsStream()方法的參數(shù)格式也是有固定要求的 * */ public static String getName4() { Properties prop = new Properties(); InputStream is = ClassLoader.getSystemResourceAsStream('com/util/prop.properties'); try { prop.load(is); name = prop.getProperty('username'); } catch (IOException e) { e.printStackTrace(); } return name; } /** * 五、 使用java.util.ResourceBundle類的getBundle()方法 * 注意:這個getBundle()方法的參數(shù)只能寫成包路徑+properties文件名,否則將拋異常 * */ public static String getName5() { ResourceBundle rb = ResourceBundle.getBundle('com/util/prop'); password = rb.getString('password'); return password; } /** * 六、 使用java.util.PropertyResourceBundle類的構(gòu)造函數(shù) * */ public static String getName6() { try { InputStream is = new FileInputStream(basePath); ResourceBundle rb = new PropertyResourceBundle(is); nickname = rb.getString('nickname'); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return nickname; } /** * 測試 * */ public static void main(String[] args) { System.out.println('name1:' + PropertiesUtil.getName1()); System.out.println('name2:' + PropertiesUtil.getName2()); System.out.println('name3:' + PropertiesUtil.getName3()); System.out.println('name4:' + PropertiesUtil.getName4()); System.out.println('password:' + PropertiesUtil.getName5()); System.out.println('nickname:' + PropertiesUtil.getName6()); }}
文件路徑:
prop.properties文件:
username=mamama nickname=xiaoma password=123456
輸出結(jié)果:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp cookie+session實現(xiàn)簡易自動登錄2. XML入門的常見問題(二)3. asp中response.write("中文")或者js中文亂碼問題4. asp取整數(shù)mod 有小數(shù)的就自動加15. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁6. css代碼優(yōu)化的12個技巧7. CSS3中Transition屬性詳解以及示例分享8. JSP 中request與response的用法詳解9. ASP基礎(chǔ)知識Command對象講解10. jsp+mysql實現(xiàn)網(wǎng)頁的分頁查詢
