读取jar包中的xml文件
这是我的结构:
- COM / myCompany中/ ValueReader.class
- COM / myCompany中/资源/ values.xml
我可以在Eclipse项目中读取该文件,但是当我将它导出到.jar时,它永远找不到values.xml。
我尝试使用ValueReader.class.getResource()和ValueReader.class.getResourceAsStream()但它不起作用。
这有什么问题? 如何获取我的values.xml文件对象?
B.
您无法获取File
对象(因为它不再是.jar中的文件),但您应该能够通过getResourceAsStream(path);
将其作为流来获取getResourceAsStream(path);
,其中path
是您class级的完整路径。
例如
/com/mycompany/resources/values.xml
您无法获取该File
的文件,因为它位于jar文件中。 但是你可以得到一个输入流:
InputStream in = ValueReader.class.getResourceAsStream("resources/values.xml");
getResourceAsStream
和getResource
将类的包转换为文件路径,然后添加参数。 这将为路径/com/mycompany/resources/values.xml
的文件提供流。
这将有效……
Thread.currentThread().getContextClassLoader().getResource("com/mycompany/resources/values.xml")
你可以使用以下方法在相同的类路径中提取jar然后获取你想要的东西:
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipfile.getCanonicalFile())));