如何为接受 File 参数的函数提供类路径资源?



我正在使用一个提供以下功能的外部API:

public void process(File file) {
}

就我而言,要提供的文件位于类路径中的 JAR 中。有没有办法向process(File)提供代表此文件的File

我尝试了以下方法:

new File(getClass().getClassLoader().getResource("my-file.txt").toURI()))

这给出了错误:URI is not hierarchical

我做了一些研究,并理解类路径上的文件不应被视为常规文件,而应被视为资源。这让我相信没有简单的方法可以为该资源构建File

我应该先将资源复制到临时文件吗?

理想情况下,你会修复 API,它肯定是坏的。否则,获取File的唯一可靠方法是复制到临时。您可能希望使用Files.createTempDirectory然后使用Apache Commons IO IOUtils之类的东西来复制内容。

相关内容

最新更新