加载配置文件的四种方式

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.OracleDriver
jdbc:oracle:thin:@localhost:1521:orcl
scott
jsd161102

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值