将文件名转换为URL()后的Java IO FileNotFoundException

时间:2011-08-30 17:40:11

标签: java jython

这是Jython代码(虽然这可能不是特定于Jython的问题)...

file_name = "Manifest.ttl"
file_url = File(file_name).toURL()
f = File(file_url.toString())
  

java.io.FileNotFoundException:java.io.FileNotFoundException:   文件:/home/james/projects/wordnet/wordnet30/rdf/Manifest.ttl(没有这样的   文件或目录)

2 个答案:

答案 0 :(得分:2)

Javadoc救援:

  

通过转换给定的路径名​​字符串来创建新的File实例   成为一个抽象的路径名。如果给定的字符串是空字符串,   然后结果是空的抽象路径名。

     

参数:       pathname - 路径名字符串

File构造函数将抽象路径名称作为参数,而不是URL的toString表示。

此外,不推荐使用toURL。您可以使用toURI,并使用此URI重新构建文件。

答案 1 :(得分:0)

toURL()添加正确的URL / URI所需的file://前缀。显然,File构造函数不检查并删除此前缀,因此它正在查找名为“file:// ...”的文件,而不是您希望它看起来的位置“/home/james/...".