2012-07-15 108 views
0

我嘗試從RAR加載文件。我正在使用的從RAR文件加載文件

sFileName=Thread.currentThread().getContextClassLoader().getResource("common.xml").getFile(); 

立即,我的要求是將文件加載到文件IO。

fSettings = new File(sFileName); 
if (fSettings.exists() && fSettings.isFile()) { 

是否可以從類路徑和創建文件對象加載文件?可以驗證嗎?

分享您的想法。

我得到這個以下錯誤:

22:44:16,718 ERROR [STDERR] java.io.FileNotFoundException: file:\C:\Servers\ApplicationServers\jboss-4.2.3.GA\server\XXXX\tmp\deploy\XXX.ear-contents\XXX.rar!\common.xml (The filename, directory name, or volume label syntax is incorrect) 22:44:16,718 ERROR [STDERR] at java.io.FileInputStream.open(Native Method)

+0

感謝'@Roddy' – androidgalaxyman 2012-07-15 18:12:25

回答

1

您用getResource()獲得可能不是一個文件的URL,在這種情況下,它不會因爲你的common.xml是一個RAR文件裏。如果您想訪問common.xml,只需執行getResourceAsStream()並閱讀InputStream

+0

嗨@Francis Upton,但如果作爲InputStream讀取,我無法轉換爲文件IO.Could你給任何建議轉換爲文件? – androidgalaxyman 2012-07-15 18:14:49

+0

由於您想要的對象位於RAR文件中,因此很困難;你將不得不獲得RAR文件並處理它。 RAR文件的成員沒有單獨的File對象。爲什麼你需要使用File IO? – 2012-07-15 18:18:13

+2

一種選擇是使用我提到的方法讀取它,然後將其寫入臨時文件並使用File I/O。 – 2012-07-15 18:19:38