最近遇到了一个Java中如何读取Properties的问题,自己上网、问同事,收集各种资料,才弄明白是怎么回事,现在分享给大家。
一、Java Properties类
Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。
Properties类的方法:
二、Java读取Properties文件
Java读取Properties文件的方法有很多 ,但是最常用的还是通过java.lang.Class类的getResourceAsStream(String name)方法来实现,如下可以这样调用:
InputStream in = getClass().getResourceAsStream(“资源Name”);作为我们写程序的,用此一种足够。
三、代码实现
package com.qianfeng.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import com.qianfeng.login.LoginServlet;
public class ProUtils {
private static Properties pro = null;
static {
// 创建Properties 对象
pro = new Properties();
// 针对普通java程序和web程序都可以获取文件路径
// web程序, / 相对于classes目录,不写/ ,相对于调用方的类所在的包
// 将读到的文件直接转换为输入流
InputStream inputStream = ProUtils.class.getResourceAsStream("/info.properties");
// 加载properties文件
try {
pro.load(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getName(){
return pro.getProperty("name");
}
public static String getPassword(){
return pro.getProperty("password");
}
}