前几天开发时遇到一个问题,在后台读取配置文件的时候无法读取属性值,于是上网查了查,现在在这分享给大家,
先附上代码吧:
包com.shafei.util;
进口java.io.BufferedInputStream中;
进口java.io.FileInputStream中;
进口java.io.FileOutputStream中;
进口的java.io.InputStream;
进口java.io.OutputStream中;
进口的java.util.Enumeration;
进口java.util.Properties;
进口org.apache.log4j.Logger;
公共类PropertieUtil {
私有静态记录器记录= Logger.getLogger(PropertieUtil.class);
私人PropertieUtil(){
}
/ **
*读取配置文件某属性
* /
公共静态字符串readValue(字符串文件路径,字符串键){
属性道具=新特性();
尝试{
//注意路径以/开始,没有则处理
如果(filePath.startsWith(“/”)!)
文件路径=“/”+文件路径;
InputStream的时间= PropertieUtil.class.getResourceAsStream(文件路径);
props.load(在);
字符串值= props.getProperty(键);
返回值;
}赶上(例外五){
logger.error(E);
返回null;
}
}
/ **
*打印配置文件全部内容(文件路径,配置文件名,如果有路径,道具/ test.properties)
* /
公共静态无效readProperties(字符串文件路径){
属性道具=新特性();
尝试{
//注意路径以/开始,没有则处理
如果(filePath.startsWith(“/”)!)
文件路径=“/”+文件路径;
InputStream的时间= PropertieUtil.class.getResourceAsStream(文件路径);
props.load(在);
枚举EN = props.propertyNames()<?>;
//遍历打印
的同时(en.hasMoreElements()){
字符串键=(字符串)en.nextElement();
String属性= props.getProperty(键);
的System.out.println(物业);
logger.info(键+“:”+物业);
}
}赶上(例外五){
logger.error(E);
}
}
/ **
*将值写入配置文件
* /
公共静态无效writeProperties(字符串文件名,字符串参数名称,字符串的parameterValue)抛出异常{
//本地测试特别注意,如果是Maven的项目,请到\目标目录下查看文件,而不是源代码下
//注意路径不能加/了,加了则移除掉
,如果(fileName.startsWith(“/”))
fileName.substring(1);
字符串文件路径= PropertieUtil.class.getResource(“/”)的getPath()+文件名。
//获取配置文件
属性PPS =新特性();
在的InputStream =新的BufferedInputStream(新的FileInputStream(文件路径));
pps.load(在);
附寄();
出的OutputStream =新的FileOutputStream(文件路径);
//设置配置名称和值
pps.setProperty(参数名称,的parameterValue);
//注释配置等于文件的注释
pps.store(满分,“更新”+参数名称+“名”);
了out.flush();
out.close();
}
公共静态无效的主要(字串[] args)抛出异常{
readProperties(“jdbc.properties”);
logger.info(readValue(“jdbc.properties”,“JAVABLOG_WRITE_URL”));
// writeProperties(“CONF / test.properties”,“dataSource.driver”,“测试”);
readProperties(“CONF / test.properties”);
}
}
上面的代码我也是学习大牛们的,也不是很难,很实用,希望对大家有帮助!