簡體   English   中英

如何從Eclipse for Java中的資源文件夾中導入文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM