Java加載properties文件實(shí)現(xiàn)方式詳解
java加載properties文件的方式主要分為兩大類:一種是通過import java.util.Properties類中的load(InputStream in)方法加載;
另一種是通過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. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. ajax post下載flask文件流以及中文文件名問題3. IntelliJ IDEA刪除類的方法步驟4. layui的checbox在Ajax局部刷新下的設(shè)置方法5. ajax實(shí)現(xiàn)頁(yè)面的局部加載6. idea導(dǎo)入maven項(xiàng)目的方法7. 刪除docker里建立容器的操作方法8. docker /var/lib/docker/aufs/mnt 目錄清理方法9. XML入門的常見問題(四)10. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲
