欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-20 13:29:40
java加载properties文件的六种方法总结 java加载properties文件的六中基本方式实现 java加载properties文件的方式主要分为两大类...

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());
  }
}

 文件路径:

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

prop.properties文件:

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

输出结果:

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

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