我想使用类加载器打开文件。但是我总是得到一个 FileNotFoundException。如何使用 URL 创建新文件?我不想像文件一样将它作为流打开。
URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
我想使用类加载器打开文件。但是我总是得到一个 FileNotFoundException。如何使用 URL 创建新文件?我不想像文件一样将它作为流打开。
URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
要将file://...
URL 转换为java.io.File
,您必须将两者结合起来url.getPath()
以url.toURI()
获得安全的解决方案:
File f;
try {
f = new File(url.toURI());
} catch(URISyntaxException e) {
f = new File(url.getPath());
}
这篇博文中的完整解释。
我只是在想:如果 foo 在罐子里怎么办?然后你不能构造一个文件。
如果 foo 真的在(本地)类路径目录中,它应该可以工作 - 但你知道,如果有人将它打包在一个 jar 中,或者通过网络加载它,它将会失败......