我的Eclipse項目中的資源文件夾中有一個文件。我需要一種將此文檔加載到我的Java文件中的方法。優選的表示形式將在InputStream中。如何在Eclipse for Eclipse中的資源文件夾中導入文件
我嘗試以下基於一些搜索,但它似乎並沒有工作,我不知道爲什麼(我得到空),任何幫助讚賞
InputStream is = getClass().getResourceAsStream("/Project/resources/BlankPDF.pdf");
我的Eclipse項目中的資源文件夾中有一個文件。我需要一種將此文檔加載到我的Java文件中的方法。優選的表示形式將在InputStream中。如何在Eclipse for Eclipse中的資源文件夾中導入文件
我嘗試以下基於一些搜索,但它似乎並沒有工作,我不知道爲什麼(我得到空),任何幫助讚賞
InputStream is = getClass().getResourceAsStream("/Project/resources/BlankPDF.pdf");
其中傳遞作爲參數傳遞給getResourceAsStream
具有的字符串是任意的位置相對到從調用getResourceAsStream
類,或絕對 w.r.t.您的任何源文件夾,以領先的/
。
因此,如果resources
是您的項目中的源文件夾(在Eclipse中標記了一個類似包的符號),那麼getClass().getResourceAsStream("/BlankPDF.pdf")
應該可以工作。
示例:假設你在你的項目中的以下文件夾和包,源文件夾被打上一個*
:
Project
src*
com.package.foo
MyClass.java
resources*
BlankPDF.pdf
然後,兩個MyClass.class.getResourceAsStream("/BlankPDF.pdf")
(領先/
,絕對)和MyClass.class.getResourceAsStream("../../../BlankPDF.pdf")
(無領導/
,相對)應該讓你的文件。
確保資源位於同一文件夾作爲您編譯的類。我不使用Eclipse,但Netbeans在構建時會自動創建一個「classes」文件夾。包(即org.website.PDFReader
)中的類將在類的完整限定名稱(即包名稱+類名稱)之後的'classes'文件夾下有一組子目錄。無論如何,這些打包類的「父目錄」仍然是「類」文件夾。
目前,請手動將資源置於該類文件夾中。幾乎肯定有一種方法可以使Eclipse在構建時自動將資源複製到適當的文件夾中(請參見下文)。
最後,在你的代碼,去掉開頭的「/」從「/項目/ ...」
當您刪除前導「/」,這使得相對於父目錄的資源位置的類的類加載器 - 在這個例子中,'類'文件夾。保持該正斜槓使資源位置爲「絕對」 - 不相對於任何父目錄。
編輯:下面的問題應該可以幫助您瞭解這個過程的更多Eclipse特定細節:Java in Eclipse: Where do I put files on the filesystem that I want to load using getResource? (e.g. images for an ImageIcon)。請務必查看接受答案的第一條評論。
或ClassLoader.getResourceAsStream(「BlankPDF.pdf」) –