zoukankan      html  css  js  c++  java
  • java读取Properties配置文件

    java读取Properties配置文件的方式有六种,这里我只写自己掌握的三种:通过java.lang.Class类的getResourceAsStream(String name) 方法来实现。

    java代码:

    InputStream in = getClass().getResourceAsStream("资源Name");  

    这句代码有点问题,那就是getClass()默认调用的的时候省略了this,而this不能在静态(static)方法或者静态块中使用,原因是static类型的方法或者代码块是属于类本身的,不属于某个对象,而this本身就代表当前对象,而静态方法或者块调用的时候是不用初始化对象的。

    话不多说,上代码:

     1 package com.qad.DButil;
     2 
     3 import java.io.InputStream;
     4 import java.util.Properties;
     5 
     6 public class PropertyTest {
     7     public static void main(String[] args) {  
     8          InputStream inputStream = Object.class.getResourceAsStream("/com/qad/properties/DBSource.properties");  
     9           InputStream inputStream2 = PropertyTest.class.getResourceAsStream("/com/qad/properties/DBSource.properties");
            //class.getClassLoader().getResourceAsStream()访问的是src目录下的文件,并且前面不能加'/'
    10 InputStream inputStream3 = PropertyTest.class.getClassLoader().getResourceAsStream("DBSource.properties"); 11 Properties p = new Properties(); 12 try { 13 p.load(inputStream2); 14 inputStream2.close(); 15 } catch (Exception e1) { 16 e1.printStackTrace(); 17 } 18 System.out.println("ip:" + p.getProperty("db.url") + "port:" 19 + p.getProperty("port")); 20 } 21 22 }

    这里实际上有三种实现方式,但是有一个需要注意的地方,当java文件和配置文件在src根目录下的时候,只需要'/'+文件名字.properties,当java文件和配置文件在同一个包内时,需要从项目根目录开始查找文件路径,例如上述路径/com/qad/properties/DBSource.properties,好了,这就是三种读取方式。

    补充:class.getResourceAsStream()和class.getClassLoader().getResourceAsStream()的区别

            1.class.getResourceAsStream()可以访问从classpath(src目录)下的所有文件;

        2.class.getClassLoader().getResourceAsStream()访问的只能是classpath下的文件,并且文件名字前不能加'/',否则会报空指针异常。

  • 相关阅读:
    测试用例怎么写
    002-利润计算
    001-无重复数字组合
    ftp上传与gui button的练习
    文件操作
    py2exe制作python可执行.exe的setup.py
    猜数字大小的游戏
    GUI简单例子学习
    新的旅程
    回车键搜索兼容性问题
  • 原文地址:https://www.cnblogs.com/qadyyj/p/5692064.html
Copyright © 2011-2022 走看看