欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java加載properties文件的六種方法總結(jié)

 更新時間:2017年05月16日 09:07:56   投稿:lqh  
這篇文章主要介紹了java加載properties文件的六種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下

java加載properties文件的六種方法總結(jié)

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文件:

1 username=mamama
2 nickname=xiaoma
3 password=123456

輸出結(jié)果:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • java中BigDecimal類型比較大小和絕對值計算方式

    java中BigDecimal類型比較大小和絕對值計算方式

    這篇文章主要介紹了java中BigDecimal類型比較大小和絕對值計算方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 使用SpringBoot動態(tài)切換數(shù)據(jù)源的實現(xiàn)方式

    使用SpringBoot動態(tài)切換數(shù)據(jù)源的實現(xiàn)方式

    在我們企業(yè)項目開發(fā)的過程中,有的時候,一個項目需要在運行時,根據(jù)某種條件選擇使用哪個數(shù)據(jù)源,那么此時該怎么進行動態(tài)切換呢,本文給大家例舉一種常見的實現(xiàn)方式,文中有詳細的實現(xiàn)步驟,需要的朋友可以參考下
    2023-12-12
  • Java設(shè)計模式之狀態(tài)模式詳解

    Java設(shè)計模式之狀態(tài)模式詳解

    Java?中的狀態(tài)模式(State?Pattern)是一種行為型設(shè)計模式,它允許對象在內(nèi)部狀態(tài)發(fā)生改變時改變其行為,本文將詳細介紹?Java?中的狀態(tài)模式,我們將從狀態(tài)模式的概述、結(jié)構(gòu)與實現(xiàn)、優(yōu)缺點、適用場景等方面進行講解,需要的朋友可以參考下
    2023-05-05
  • 簡單驗證碼生成Java版

    簡單驗證碼生成Java版

    這篇文章主要為大家詳細介紹了簡單驗證碼生成Java版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • java線程并發(fā)blockingqueue類使用示例

    java線程并發(fā)blockingqueue類使用示例

    BlockingQueue是一種特殊的Queue,若BlockingQueue是空的,從BlockingQueue取東西的操作將會被阻斷進入等待狀態(tài)直到BlocingkQueue進了新貨才會被喚醒,下面是用BlockingQueue來實現(xiàn)Producer和Consumer的例子
    2014-01-01
  • 教你實現(xiàn)Java接口防刷

    教你實現(xiàn)Java接口防刷

    有些人會惡意提交,本文主要介紹了教你實現(xiàn)Java接口防刷,通過在一定時間內(nèi)限制同一用戶對同一個接口的請求次數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • mybatis-plus 新增/修改如何實現(xiàn)自動填充指定字段

    mybatis-plus 新增/修改如何實現(xiàn)自動填充指定字段

    這篇文章主要介紹了mybatis-plus 新增/修改實現(xiàn)自動填充指定字段方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java虛擬機JVM優(yōu)化實戰(zhàn)的過程全記錄

    Java虛擬機JVM優(yōu)化實戰(zhàn)的過程全記錄

    有人說Java之所以能夠崛起,JVM功不可沒。Java虛擬機最初服務(wù)于讓Java語言凌駕于平臺之上,實現(xiàn)“編寫一次,到處運行”,那么下面這篇文章主要給大家分享了個關(guān)于Java虛擬機JVM優(yōu)化實戰(zhàn)的過程全記錄,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • JavaWeb 使用Session實現(xiàn)一次性驗證碼功能

    JavaWeb 使用Session實現(xiàn)一次性驗證碼功能

    這篇文章主要介紹了JavaWeb 使用Session實現(xiàn)一次性驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Mybatis generator的使用全面解析

    Mybatis generator的使用全面解析

    這篇文章主要介紹了Mybatis generator的使用,非常不錯,具有參考借鑒價值,對mybatis generator的使用相關(guān)知識感興趣的朋友一起學習吧
    2016-09-09

最新評論