您的位置:首页 > 其它

加载配置文件的四种方式

2017-08-23 22:02 316 查看
    

package day01;  
import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.Properties;  
/** 
 * 测试配置文件的读取-config.properties 
 * 读取资源文件的多种方式(四种) 
 */  
public class JDBCDemo2 {  
    public static void main(String[] args) {  
        InputStream is = null;  
        FileInputStream fis = null;//用于读取根目录下的配置文件  
        try{  
            //使用Properties去读取配置文件(建议采用第一种万能的方式来读取资源文件)  
            Properties p = new Properties();  
            /** 
             * 第一种方式: 用类加载器读取资源文件 
             * 适用情形:资源文件和类文件在不在同一目录都可以 
             * 注意:getResourceAsStream里的参数要写资源文件的全限定路径, 
             * 包名+文件名且开头千万不要写"/" 
             */  
            is = JDBCDemo2.class.getClassLoader().  
                getResourceAsStream("wq/config.properties");//包名+文件名  
              
            /** 
             * 第二种方式: 用类加载器读取资源文件 
             */  
//          is = new FileInputStream("./src/day01/config.properties");//绝对路径(也可使用相对路径)  
              
            /** 
             * 第三种方式:用class.getResourceAsStream()(其实还是用的类加载器) 
             * (1)适用情形:如果资源文件和类文件在同一包下,直接写资源文件的名称就行了, 
             * 注意:资源文件的名称前面不需要加“/” 
             *  
             * (2)若资源文件和类文件不在同一个目录下的情况 
             * 注意:开头一定要加上”/“ 
             *  
             */  
//          is = JDBCDemo2.class.getResourceAsStream("config.properties");  
//          is = JDBCDemo2.class.getResourceAsStream("/wq/config.properties");//(/包名+类名)  
              
            /** 
             * 第四种方式:若配置文件位于根目录下,用FileInputStream流来读取文件,再调用p.load()方法 
             */  
//          fis = new FileInputStream("config.properties");//注意关闭fis流  
//          p.load(fis);  
              
            p.load(is);//p.load(InputStream/InputReader)可传入的参数为字节流或字符流  
            String driver = p.getProperty("driver").trim();  
            String url = p.getProperty("url").trim();  
            String user = p.getProperty("user").trim();  
            String password = p.getProperty("password").trim();  
            System.out.println(driver+"\n"+url+"\n"+user+"\n"+password);  
              
        }catch(Exception e){  
            e.printStackTrace();  
        }finally{  
            //通过Properties读取文件(通过流读取)后,应该关闭流(抛出异常)  
            try {  
                is.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
}  
/** 
 * 总结:1.若配置文件在src目录下,则采用FileInputStream fis= new FileInputStream("文件名称"); 
 *      调用p.load(fis)加载即可,最后关闭流 
 *  
 *     2.若文件在其他目录下,src或者其他(例如:resource)路径下,则可以通过 
 *       InputStream is = 类名.class.getClassLoader().getResourceAsStream("包名/文件名"); 
 *       调用p.load(is)加载即可,最后关闭流 
 */  

测试结果如下:

[java]
view plain
copy

oracle.jdbc.driver.OracleDriver  
jdbc:oracle:thin:@localhost:1521:orcl  
scott  
jsd161102 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: