我想使用类加载器打开文件。不过,我总是得到一个FileNotFoundException。如何使用URL创建新文件?我不想像文件一样将它作为流打开。如何使用Class Loader作为文件加载资源?
URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
我想使用类加载器打开文件。不过,我总是得到一个FileNotFoundException。如何使用URL创建新文件?我不想像文件一样将它作为流打开。如何使用Class Loader作为文件加载资源?
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());
}
在此blog post完整的解释。
我只是在想:如果foo是在一个罐子里?然后你不能构建一个文件。
如果foo确实位于(本地)类路径目录中,它应该可以工作 - 但是,如果有人将其打包在jar中,或者通过网络加载,它将会失败。 。