我需要以这种方式读取jar文件夹中的文件:
DataSource coverdata = new FileDataSource(new File("here is the path"));
我如何获得确切的路径?我正在使用一个库,所以我可以访问文件的唯一方法是new File()
,没有输入流。
答案 0 :(得分:3)
致电ClassLoader.getResourceAsStream()::InputStream
或ClassLoader.getResource()::URL
。
请参阅:
包含所请求文件的JAR文件必须位于类路径中。
答案 1 :(得分:1)
你走错了路。文件只是直接写在文件系统上的东西。 jar中的文件不是来自Java API的文件。
要读取此文件,您必须使用JarInputStream或ZipInputStream解析JAR,转到有趣的条目并从输入流中读取。这并不难,但你必须编写几行代码。
其他方法是使用jakarta.org的VFS包。它为您提供了不同文件系统,ZIP,TAR和其他容器格式的元素的统一视图。
答案 2 :(得分:0)
如何使用@home已经讨论过的InputStream(getResourceAsStream())方法创建一个新的临时文件,然后将其作为普通文件读取?