首页 > 编程 > Java > 正文

java加载properties文件的六种方法总结

2019-11-26 12:17:29
字体:
来源:转载
供稿:网友

java加载properties文件的六种方法总结

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

1 username=mamama2 nickname=xiaoma3 password=123456

输出结果:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表