package cn.sdut.reflectclass;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/*
* 反射第六步 : 通過反射加載資源文件 三種方式
*
* properties是Hashtable的子類 也就是 鍵值都是Strin類型
* 建立一個source Folder 叫做 resource 裏面存放 db.properties 文件 或者直接建在src下面 編譯後 文件都會被放到字節碼根目錄下
* 文件內容:
* #key=value
* admin=root
* password=root
*
*/
public class RelfectDemo06 {
public static void main(String[] args) throws Exception {
Properties p = new Properties();
//第一種方式 :使用絕對路徑
InputStream inputStream = new FileInputStream("C:/Users/Administrator/Desktop/ZXC/day0803/resource/db.properties");
//InputStream inputStream = new FileInputStream("resource/db.properties");
p.load(inputStream);
System.out.println(p);
//第二種方式 :使用類加載器 它會從字節碼根目錄下開始尋找文件 最常使用的方法
InputStream inputStream1 = null;
ClassLoader clo =Thread.currentThread().getContextClassLoader();//加載器可以是隨便一個類來獲得 RelfectDemo06.class.getClassLoader();也可以
inputStream1 = clo.getResourceAsStream("db.properties");
p.load(inputStream);
System.out.println(p);
//第三種方式 :使用class類的getResourceAsStream(String name) 它會從所在字節碼目錄下尋找文件
InputStream inputStream2 = RelfectDemo06.class.getResourceAsStream("db.properties");//此時 RelfectDemo06.class文件和db.properties文件在一個文件夾下面
p.load(inputStream2);
System.out.println(p);
}
}
反射第六步 : 通過反射加載資源文件 三種方式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.