Java加載properties文件實現方式詳解
java加載properties文件的方式主要分為兩大類:一種是通過import java.util.Properties類中的load(InputStream in)方法加載;
另一種是通過import java.util.ResourceBundle類的getBundle(String baseName)方法加載。
注意:一定要區分路徑格式
實現代碼如下:
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)方法的參數必須是包路徑+文件名+.后綴 否則會報空指針異常 * */ 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()靜態方法 * getSystemResourceAsStream()方法的參數格式也是有固定要求的 * */ 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()方法的參數只能寫成包路徑+properties文件名,否則將拋異常 * */ public static String getName5() { ResourceBundle rb = ResourceBundle.getBundle('com/util/prop'); password = rb.getString('password'); return password; } /** * 六、 使用java.util.PropertyResourceBundle類的構造函數 * */ 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
輸出結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
