2017-09-01 35 views
1

我是NetBeans IDE的新手,並且在構建jar文件後正在努力訪問文件。在閱讀了關於該主題的許多帖子後,我決定嘗試以下代碼:文件只有在放置在將從jar中刪除的位置時纔可訪問

BufferedReader read = new BufferedReader(new InputStreamReader(getClass()。getResourceAsStream(「/ file.txt」)));

當我的文件放在.class文件所在的項目的「build」文件夾中時,這很好,但當然這是一個問題,因爲它在「清理和構建」文件已創建。我已經嘗試將它放在src文件夾中,放置在單獨的「資源」包中,並位於目錄的根目錄中。我也嘗試使用「file.txt」和「/src/file.txt」調用getResourceAsStream(),但只有在使用.class文件時才能在上述配置中使用。任何提示將不勝感激!

+0

您需要在配置資源文件夾的位置查找您的項目設置。它似乎沒有與您的其他代碼一起打包。 – alirabiee

+0

@alirabiee非常感謝!原來我是把文件放入錯誤的資源文件夾中。 – jiffy

回答

0

爲什麼不把你的文件夾放在tomcat bin中,並引用你的代碼中的目錄。所以maven clean不會改變文件,你可以刪除,更新文件而不需要重新啓動應用程序。 (在這裏,我有內部等文件)

Path: /Users/username/Documents/apache-tomcat-8.5.15/bin/etc 

ArrayList<String> readList = null; 
String workingDir = System.getProperty("user.dir"); 
String fileName = "File.txt"; 
File file = new File(workingDir+"/etc/" + fileName); 
readList = resourceReader.readFile(file.getAbsolutePath()); 

我有方法READFILE解析一些數據,並建立在上面的例子該ArrayList。

閱讀有關System Properties

+0

我認爲,一旦你建立了jar文件,你不能再使用文件對象,而必須改爲將文件作爲InputStream讀取? – jiffy

0

原來的解決方案是非常簡單的。我一直在試圖手動創建一個資源文件夾,但內容保持在罐子裏的建築被刪除。相反,我創建了一個資源包,並將該文件放入src文件夾內的自動生成的文件夾中,該文件夾將該文件打包到jar中。感謝大家!

相關問題