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

Java加載properties文件實現(xiàn)方式詳解

 更新時間:2020年07月27日 10:45:28   作者:黑仔002  
這篇文章主要介紹了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類的構造函數(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文件:

 username=mamama
 nickname=xiaoma
 password=123456

輸出結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論