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

最新文章

  1. 强类型DataSet的使用简明教程
  2. 先来个xmpp学习连接
  3. DB2 基本概念
  4. 所有的代码生成器都是浮云,如果可以用aspx文件作为模板
  5. js关闭窗口
  6. java中如何操作数据库(增删改查)
  7. Lua 5.1 for Delphi 2010
  8. 【源代码】LinkedHashMap源代码剖析
  9. HTML表单属性集合
  10. [转帖]ulimit、limits.conf、sysctl和proc文件系统
  11. label与input之间的对应
  12. struts2框架之重复提交问题
  13. 剑指Offer 41. 和为S的连续正数序列 (其他)
  14. (网页)angular中实现li或者某个元素点击变色的两种方法(转)
  15. JAVA基础知识总结:二十一
  16. 备份Android机上的照片
  17. 教程 | 如何使用纯NumPy代码从头实现简单的卷积神经网络
  18. 主成分分析(PCA)算法,K-L变换 角度
  19. tensorflow笔记之softmax_cross_enropy
  20. Educational Codeforces Round 59

热门文章

  1. java- Collection Map集合
  2. openssl RSA证书签发命令
  3. Protel画完原理图检查的时候出现了这些错误 #1 Error Multiple Net Identifiers
  4. webapi 文件下载输出接口
  5. 简单实现MemCachedUtil
  6. const_cast
  7. BZOJ1252:序列终结者
  8. ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段(EXP-00056: 遇到 ORACLE 错误 1652 ORA-01652: unable to extend temp segment by 128 in tablespace TEMP)
  9. JProfiler 8(一个很好的java性能监控工具) 下载和注册码
  10. java课程设计-坦克大战