2009-07-07 67 views
8

我想使用ClassLoader爲Properties類加載一個屬性文件。我已經簡化下面的代碼刪除錯誤處理這個討論的目的:如何使用Java ClassLoader從類路徑加載文件?

loader = this.getClass().getClassLoader(); 
in = loader.getResourceAsStream("theta.properties"); 
result = new Properties(); 
result.load(in); 

在同一個目錄中這個類我有文件「theta.properties」但InputStream的總是空。我把文件放在錯誤的地方?我使用eclipse和它的集合來建立類文件到源文件夾 - 所以這不應該是問題。

我找不到JavaDoc中的任何內容,讓ClassLoader告訴我正在搜索哪個類路徑。

回答

10

使用getClass().getClassloader()你看從根路徑目錄 「theta.properties」。只需使用getClass().getResourceAsStream()即可獲取與該類相關的資源。

6

如果該文件與該類位於同一目錄中,則必須將該類的包作爲目錄前綴。

所以,如果你的包是:

package com.foo.bar; 

那麼你的代碼是:

.getResourceAsStream("com/foo/bar/theta.properties"); 
-1

您可以使用ResourceBundle

相關問題