Java加載properties文件實(shí)現(xiàn)方式詳解
java加載properties文件的方式主要分為兩大類(lèi):一種是通過(guò)import java.util.Properties類(lèi)中的load(InputStream in)方法加載;
另一種是通過(guò)import java.util.ResourceBundle類(lèi)的getBundle(String baseName)方法加載。
注意:一定要區(qū)分路徑格式
實(shí)現(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類(lèi)的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()讀取路徑是與本類(lèi)的同一包下 * */ 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ù)必須是包路徑+文件名+.后綴 否則會(huì)報(bào)空指針異常 * */ 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類(lèi)的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類(lèi)的getBundle()方法 * 注意:這個(gè)getBundle()方法的參數(shù)只能寫(xiě)成包路徑+properties文件名,否則將拋異常 * */ public static String getName5() { ResourceBundle rb = ResourceBundle.getBundle('com/util/prop'); password = rb.getString('password'); return password; } /** * 六、 使用java.util.PropertyResourceBundle類(lèi)的構(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; } /** * 測(cè)試 * */ 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é)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析2. 解決啟動(dòng)django,瀏覽器顯示“服務(wù)器拒絕訪(fǎng)問(wèn)”的問(wèn)題3. JavaMail 1.4 發(fā)布4. vue使用webSocket更新實(shí)時(shí)天氣的方法5. 淺談python出錯(cuò)時(shí)traceback的解讀6. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼7. Yii2.0引入CSS,JS文件方法8. Nginx+php配置文件及原理解析9. 關(guān)于HTML5的img標(biāo)簽10. 如何使用CSS3畫(huà)出一個(gè)叮當(dāng)貓
