相关疑难解决方法(0)

用于类路径资源的java.nio.file.Path

是否有一个API来获取类路径资源(例如我得到的Class.getResource(String))作为一个java.nio.file.Path?理想情况下,我想使用奇特的新Path API和类路径资源.

java java-7 nio2

132
推荐指数
5
解决办法
10万
查看次数

Java:如何从转义的URL获取文件?

我收到一个找到本地文件的URL(我收到的URL不在我的控制范围内).URL按RFC2396中的定义进行有效转义.如何将其转换为Java File对象?

有趣的是,URL getFile()方法返回一个String,而不是File.

我已经创建了一个名为"/ tmp/some dir"的目录(在"some"和"dir"之间有一个间距字符),它通过以下URL正确定位:"file:/// tmp/some%20dir" (为清楚起见,添加了引号).

如何将该URL转换为Java文件?

要提供有关我的问题的更多详细信息,以下打印为false:

URL url = new URL( "file:///tmp/some%20dir" );
File f = new File( url.getFile() );
System.out.println( "Does dir exist? " + f.exists() );
Run Code Online (Sandbox Code Playgroud)

而以下(用空格手动替换"%20")打印为true:

URL url = new URL( "file:///tmp/some%20dir" );
File f = new File( url.getFile().replaceAll( "%20", " " ) );
System.out.println( "Does dir exist? " + f.exists() );
Run Code Online (Sandbox Code Playgroud)

请注意,我不是在问为什么第一个示例打印为false,为什么使用我的hacky replaceAll的第二个示例打印为true,我问如何将转义的URL转换为Java File对象.

编辑:谢谢大家,这几乎是一个骗局但不完全.

愚蠢的是我在URL类本身中寻找一个帮助方法.

以下按预期从Java URL获取Java文件:

URL url = new URL( "file:///home/nonet/some%20dir" ); …
Run Code Online (Sandbox Code Playgroud)

java url escaping file

45
推荐指数
3
解决办法
5万
查看次数

标签 统计

java ×2

escaping ×1

file ×1

java-7 ×1

nio2 ×1

url ×1