从.jar文件夹中读取文件

时间:2011-07-24 07:56:14

标签: java file jar inputstream

我需要以这种方式读取jar文件夹中的文件:

 DataSource coverdata = new FileDataSource(new File("here is the path"));

我如何获得确切的路径?我正在使用一个库,所以我可以访问文件的唯一方法是new File(),没有输入流。

3 个答案:

答案 0 :(得分:3)

致电ClassLoader.getResourceAsStream()::InputStreamClassLoader.getResource()::URL

请参阅:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String

包含所请求文件的JAR文件必须位于类路径中。

答案 1 :(得分:1)

你走错了路。文件只是直接写在文件系统上的东西。 jar中的文件不是来自Java API的文件。

要读取此文件,您必须使用JarInputStream或ZipInputStream解析JAR,转到有趣的条目并从输入流中读取。这并不难,但你必须编写几行代码。

其他方法是使用jakarta.org的VFS包。它为您提供了不同文件系统,ZIP,TAR和其他容器格式的元素的统一视图。

答案 2 :(得分:0)

如何使用@home已经讨论过的InputStream(getResourceAsStream())方法创建一个新的临时文件,然后将其作为普通文件读取?