当前位置: 移动技术网 > IT编程>开发语言>Java > java加载properties文件的六种方法总结

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

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=mamama
2 nickname=xiaoma
3 password=123456

输出结果:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网