2012-08-29 37 views
1

如何讀取在EAR或WAR中部署爲資源的文件?如何讀取部署在EAR中的文件

我想創建一個新的FileInputStream調用下面的構造函數。

java.io.FileInputStream.FileInputStream(String) 

不過我想讀位於路徑WAR文件裏 「/ GLM/src目錄/主/資源/ excel_templates」 的文件。

是否可以使用基於EAR或WAR的文件路徑創建FileInputStream?

+0

值得一提的是文件I/O操作(和多線程)是一個JEE容器內氣餒,因爲他們可以打破事務的完整性。例如,有許多替代品,例如JCA連接器。 –

+0

寫入文件時,我會記住JCA連接器,但在需要讀取模板文件時需要RCA連接器嗎? –

回答

3

嘗試是這樣的:

URL url = SomeClassInEar.getClass().getClassLoader().getResource("rootDirInEar/SubDir/fileInEar.whatever"); 
File file = new File(url.getPath()); 
FileInputStream fis = new FileInputStream(file); 
+1

非常感謝! 如果您使用彈簧,您也可以使用以下代碼。 'new org.springframework.core.io.ClassPathResource(FILAPATH_INSIDE_EAR_CLASS_PATH).getInputStream()' –