从RAR文件加载文件

问题描述:

我尝试从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

您用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