反射第六步 : 通過反射加載資源文件 三種方式

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);
		
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章