[英]How to import a file from resources folder in Eclipse for Java
我在Eclipse項目中的資源文件夾中有一個文件。 我需要一種將該文檔加載到Java文件中的方法。 最好的表示形式是在InputStream中。
我根據一些搜索嘗試了以下方法,但它似乎不起作用,並且我不確定為什么(我得到null),任何幫助表示贊賞
InputStream is = getClass().getResourceAsStream("/Project/resources/BlankPDF.pdf");
確保資源與已編譯的類位於同一文件夾中。 我不使用Eclipse,但是Netbeans在構建時會自動創建一個“ classes”文件夾。 包(即org.website.PDFReader
)中的類將在“ classes”文件夾下具有一組子目錄,並遵循該類的完全限定名稱(即,包名+類名)。 無論如何,這些打包類的“父目錄”仍然是“ classes”文件夾。
暫時將您的資源手動放在該classes文件夾中。 幾乎可以肯定,有一種方法可以使Eclipse在構建時自動將資源復制到適當的文件夾中(請參見下文)。
最后,在您的代碼中,從“ / Project / ...”中刪除開頭的“ /”。
刪除該前導“ /”時,它將使資源位置相對於類的類加載器的父目錄-在本示例中為“ classes”文件夾。 保持該斜杠會使資源位置“絕對”-而不是相對於任何父目錄。
編輯:以下問題應該可以幫助您解決此過程的更多特定於Eclipse的細節: Eclipse中的Java:如何在要使用getResource加載的文件系統上放置文件? (例如ImageIcon的圖像) 。 同樣,請務必查看已接受答案的第一條評論。
作為參數傳遞給getResourceAsStream
的字符串必須是相對於您從其調用getResourceAsStream
的類的位置,或者是絕對的任何源文件夾(以/
開頭)。
因此,如果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")
(無前導號/
,相對值)應該會給你文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.