当前位置: 首页 > 面试题库 >

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

岑畅
2023-03-14
问题内容

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

有趣的是,URL getFile()方法返回的是字符串,而不是文件。

我创建了一个名为“ / 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() );

当以下内容(用空格手动替换“%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() );

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

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

愚蠢的是,我在URL类本身中寻找一个辅助方法。

从Java URL获取Java文件的预期工作如下:

URL url = new URL( "file:///home/nonet/some%20dir" );
File f = new File( URLDecoder.decode( url.getFile(), "UTF-8" ) );

问题答案:

URLDecoder.decode(url);//deprecated
URLDecoder.decode(url, “UTF-8”); //use this instead



 类似资料:
  • 问题内容: 我正在寻找一个可以获取URL参数并支持此搜索字符串而不输出JavaScript错误的jQuery插件:“格式错误的URI序列”。如果没有支持此功能的jQuery插件,我需要知道如何对其进行修改以支持此功能。 解码时,URL参数的值应为: (字符是挪威语)。 我无权访问服务器,因此无法对其进行任何修改。 问题答案: 您不应该使用jQuery这样的东西! 现代的方式是通过像Bower这样的

  • 问题内容: 当我通过URL的InputStream读取xml,然后剪切掉URL以外的所有内容时,我得到了“ http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu% 20Bin%20Bataye.mp3 “。 如您所见,有很多“%20”。 我希望网址不被转义。 在不使用第三方库的情况下,有什么方法可以用

  • 我需要用函数SSJS from mJson()读一个URL。例如Notes View的数据访问API http://{host}/{database}/api/data/collections/name/{name} 我该怎么做? P. S我认为(我不知道是否是真的),如果我使用Java代码(例如类URLReader从这个博客,我失去作者/读者的功能,因为是我的服务器,而不是当前用户执行读取流?

  • 问题内容: 我已经签出了很多页面,但是大多数教程和脚本使用这种JSON输出类型返回错误代码。那么,如何才能从Java中的JSON中提取数据? 问题答案: 如果要使用Gson,则首先声明用于容纳每个元素和子元素的类: 然后,声明一个最外层元素的数组(因为在这种情况下,JSON对象是一个JSON数组),并对其进行分配: 然后,您只需访问的元素。 要记住的重要一点是,您声明的属性的名称和类型应与JSON

  • 问题内容: 我允许用户通过拖放和其他方法将图像加载到页面中。放置图像时,我用来转换为对象URL以显示图像。我没有撤消该URL,因为我确实重复使用了它。 因此,当需要创建一个对象时,我可以允许他们上传其中包含其中一个图像的表单,是否可以通过某种方式将该对象URL反向转换为a ,然后可以将其附加到a 宾语? 问题答案: 正如gengkev在上面的评论中所暗示的那样,似乎最好/唯一的方法是使用异步xhr

  • 我允许用户通过拖动将图像加载到页面中 那么,当需要创建一个对象时,我可以允许他们上传一个包含其中一个图像的表单,有没有什么方法可以将该对象URL反转回或,然后将其附加到对象?