Java加載properties文件實(shí)現(xiàn)方式詳解
java加載properties文件的方式主要分為兩大類:一種是通過(guò)import java.util.Properties類中的load(InputStream in)方法加載;
另一種是通過(guò)import java.util.ResourceBundle類的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類的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ù)必須是包路徑+文件名+.后綴 否則會(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類的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()方法 * 注意:這個(gè)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; } /** * 測(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. 利用CSS3新特性創(chuàng)建透明邊框三角2. html清除浮動(dòng)的6種方法示例3. CSS代碼檢查工具stylelint的使用方法詳解4. Vue3使用JSX的方法實(shí)例(筆記自用)5. vue實(shí)現(xiàn)將自己網(wǎng)站(h5鏈接)分享到微信中形成小卡片的超詳細(xì)教程6. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)7. 詳解CSS偽元素的妙用單標(biāo)簽之美8. 使用css實(shí)現(xiàn)全兼容tooltip提示框9. JavaScript數(shù)據(jù)類型對(duì)函數(shù)式編程的影響示例解析10. 不要在HTML中濫用div
