從類路徑載入資源
載入打包在 JAR 中的資源(影象,文字檔案,屬性,KeyStore 等)非常有用。為此,我們可以使用 Class
和 ClassLoader
s。
假設我們有以下專案結構:
program.jar
|
\-com
\-project
|
|-file.txt
\-Test.class
我們想從 Test
類訪問 file.txt
的內容。我們可以通過詢問類載入器來實現:
InputStream is = Test.class.getClassLoader().getResourceAsStream("com/project/file.txt");
通過使用類載入器,我們需要指定資源的完全限定路徑(每個包)。
或者,我們可以直接詢問 Test 類物件
InputStream is = Test.class.getResourceAsStream("file.txt");
使用類物件,路徑相對於類本身。我們的 Test.class
在 com.project
包中,與 file.txt
相同,我們根本不需要指定任何路徑。
但是,我們可以使用類物件的絕對路徑,如下所示:
is = Test.class.getResourceAsStream("/com/project/file.txt");