- 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