2014-10-08 101 views
0

使用下面的代碼讀取我的servlet中的屬性文件。我想澄清關於getClass.getClassLoader().getResourceAsStream(...)線。讀取Servlet中的屬性文件

從我的理解中,getClassLoader()將得到與我已定義的Servlet類相關聯的類加載器。但是,這與propFileName有關?

Properties prop = new Properties(); 
String propFileName = "config.properties"; 
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName); 
prop.load(inputStream); 

String user = prop.getProperty("GOOGLE_CLIENT_ID"); 
String id = prop.getProperty("GOOGLE_REDIRECT_URL"); 
+2

你是什麼意思_how與propertyfilename_有關?不是。它僅查找在您在類路徑中指定的路徑中定義的資源。 – 2014-10-08 21:38:47

回答

0

公衆的InputStream的getResourceAsStream(字符串名稱)

根據Java API,這個方法查找具有給定名稱/路徑的資源。 用於搜索與ClassLoader相關的資源的規則(給定的類由類的定義類加載器實現)。

參數「name」必須是文件的「絕對」路徑,所以它將打開InputStream並將其實例傳遞給Properties.load(inputStream)方法。

這在Java API中明確提到。請看看: http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)

希望這有助於!