2014-09-23 106 views
0

我有一個Maven項目說項目A,並且還有一類說ClassA的這個項目,該項目使用從資源文件夾中的文件,我使用以下方式從資源閱讀:Maven的模塊依賴和資源

String fileName = IPToGeoMapper.class.getResource("/resourceFile.txt").getFile(); 
File resourceFile = new File(fileName); 

,它的作品像魅力。

現在,當我從這個項目中創建工件時(我已經嘗試提取創建的jar,並且它已將jar包中的resourceFile.txt打包),並將其用作其他項目的依賴項,比如ProjectB,ClassA沒有更多發現resourceFile.txt,因爲它嘗試瀏覽ProjectB的資源文件夾。

我想要最好的全局解決方案,可以在所有項目中使用ProjectA創建的工件 處理此問題的最佳方法是什麼?

+1

嘗試使用ResourceAsStream – Samy 2014-09-23 11:18:11

回答

1

試試這個方法,我正在讀一個屬性文件的例子。

Properties propfile = new Properties(); propfile.load(PropertyUtils.class.getClassLoader() .getResourceAsStream( "applicationprops.properties"));

BufferedReader reader = new BufferedReader(new InputStreamReader(ClassA.class.getClassLoader().getResourceAsStream("file.txt"))); StringBuilder out = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { out.append(line); } System.out.println(out.toString()); //Prints the string content read from input stream reader.close();

+0

類路徑加載它,是的,我認爲這會工作的屬性文件作爲其返回的流,我需要處理的文件實際。 – 2014-09-23 11:56:36

+0

您仍然可以從流中讀取文件內容。如果您必須閱讀文件內容,請閱讀流中的文件內容來編輯我的答案。 – Samy 2014-09-23 12:11:14