加载配置文件的四种方式

来源:互联网 发布:哪个网络播放器最好用 编辑:程序博客网 时间:2024/06/06 07:32
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)加载即可,最后关闭流 */

测试结果如下:

oracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@localhost:1521:orclscottjsd161102

0 1
原创粉丝点击