4

我想使用类加载器打开文件。但是我总是得到一个 FileNotFoundException。如何使用 URL 创建新文件?我不想像文件一样将它作为流打开。

URL url = VersionUpdater.class.getResource("xslt/screen/foo");
File f = ...
4

2 回答 2

3

要将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());
}

这篇博文中的完整解释。

于 2010-04-26T23:33:04.437 回答
0

我只是在想:如果 foo 在罐子里怎么办?然后你不能构造一个文件。

如果 foo 真的在(本地)类路径目录中,它应该可以工作 - 但你知道,如果有人将它打包在一个 jar 中,或者通过网络加载它,它将会失败......

于 2010-04-26T23:49:16.977 回答