我想使用类加载器打开文件。但是我总是得到一个FileNotFoundException。如何使用URL创建新文件?我不想像文件那样以流形式打开它。
URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
答案 0 :(得分:3)
要将file://...
网址转换为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中的完整说明。
答案 1 :(得分:0)
我只是想:如果foo在罐子里怎么办?然后你无法构造一个文件。
如果foo真的在(本地)类路径目录中,应该可以使它工作 - 但是你知道,如果有人将它打包在jar中,或者通过网络加载它,它将会失败...