读取指定路径的Properties文件
2024-08-20 18:41:03
1.读取项目内的properties文件,项目内的properties文件一般都放在resource文件夹下面,
通过getClassLoader().getResourceAsStream()来获取取InputStream。
代码如下:
Properties props = new Properties();
String PATH="jdbc.properties";
InputStream in = PropertyTest.class.getClassLoader().getResourceAsStream(PATH);
props.load(in);
String value=props.getProperty("user");
2.读取指定路径的properties文件,通过BufferedInputStream来获取流。这种方法,可以获取项目工程外的properties文件。
代码如下:
Properties props = new Properties();
String PATH="E:\\JavaDemo\\src\\main\\resource\\jdbc.properties";
InputStream in = new BufferedInputStream(new FileInputStream( PATH ));
props.load(in);
String value=props.getProperty("user");
3.常用的工具类如下所示:
public class PropertyUtil {
//将要读取的properties的文件名
private static String propertiesFileName="jdbc.properties";
private static final Logger logger = Logger.getLogger(PropertyUtil.class);
private static Properties props= new Properties();
static{
logger.info("执行静态代码块loadProps(),保存在jvm中,避免多次执行。");
loadProps();
} synchronized static private void loadProps(){
logger.info("开始加载properties文件内容.......");
InputStream in = null;
try {
// <!--第一种,通过类加载器进行获取properties文件流,路径为相对路径-->
in = PropertyUtil.class.getClassLoader().getResourceAsStream(propertiesFileName);
// <!--第二种,通过类进行获取properties文件流-->
//in = PropertyUtil.class.getResourceAsStream("propertiesFileName");
props.load(in);
} catch (FileNotFoundException e) {
logger.error("properties文件未找到");
} catch (IOException e) {
logger.error("出现IOException");
} finally {
try {
if(null != in) {
in.close();
}
} catch (IOException e) {
logger.error("properties文件流关闭出现异常");
}
}
logger.info("加载properties文件内容完成...........");
} public static String getProperty(String key){
if(null == props) {
loadProps();
}
return props.getProperty(key);
} public static String getProperty(String key, String defaultValue) {
if(null == props) {
loadProps();
}
return props.getProperty(key, defaultValue);
}
}
最新文章
- 强类型DataSet的使用简明教程
- 先来个xmpp学习连接
- DB2 基本概念
- 所有的代码生成器都是浮云,如果可以用aspx文件作为模板
- js关闭窗口
- java中如何操作数据库(增删改查)
- Lua 5.1 for Delphi 2010
- 【源代码】LinkedHashMap源代码剖析
- HTML表单属性集合
- [转帖]ulimit、limits.conf、sysctl和proc文件系统
- label与input之间的对应
- struts2框架之重复提交问题
- 剑指Offer 41. 和为S的连续正数序列 (其他)
- (网页)angular中实现li或者某个元素点击变色的两种方法(转)
- JAVA基础知识总结:二十一
- 备份Android机上的照片
- 教程 | 如何使用纯NumPy代码从头实现简单的卷积神经网络
- 主成分分析(PCA)算法,K-L变换 角度
- tensorflow笔记之softmax_cross_enropy
- Educational Codeforces Round 59
热门文章
- java- Collection Map集合
- openssl RSA证书签发命令
- Protel画完原理图检查的时候出现了这些错误 #1 Error Multiple Net Identifiers
- webapi 文件下载输出接口
- 简单实现MemCachedUtil
- const_cast
- BZOJ1252:序列终结者
- ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段(EXP-00056: 遇到 ORACLE 错误 1652 ORA-01652: unable to extend temp segment by 128 in tablespace TEMP)
- JProfiler 8(一个很好的java性能监控工具) 下载和注册码
- java课程设计-坦克大战