Java加载properties文件实现方式详解

网友投稿 666 2022-11-29


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.FileNotFoundcvDHfException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import java.util.PropertyResourceBundle;

import java.util.ResourceBundle;

public chttp://lass 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.cvDHfproperties文件:

username=mamama

 nickname=xiaoma

 password=123456

输出结果:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现学生成绩信息管理系统
下一篇:java JDBC系列教程之JDBC类的简析与JDBC的基础操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~