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

}

}

文件路径:

2c922405471061545ab8d3d9184b6f91.png

prop.properties文件:

username=mamama

nickname=xiaoma

password=123456

输出结果:

d4a07cad003347c6a08285cb6de0b442.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值