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

如何避免从URL.getFile()获取URL编码的路径?

仲孙小云
2023-03-14
问题内容

尝试获取给定资源的路径时遇到以下问题:

    System.out.println("nf="+new File(".").getAbsolutePath());      
    System.out.println("od="+new File(this.getClass().getResource(".").getFile());

我得到的输出是:

nf=C:\Users\current user\workspace\xyz\.
od=C:\Users\current%20user\workspace\xyz\bin\something

问题在于%20 URL编码。如何避免呢?是否有一种直接的方法可以避免一开始就得到这种字符串,还是应该只对将执行URL解码的某些方法运行返回的字符串

谢谢


问题答案:

这是由于API中的URL处理问题。您可以通过先将 URL字符串转换为URI来 解决此问题:

new URI(this.getClass().getResource(".").toString()).getPath()

这将产生一个字符串,如下所示:

"C:\Users\current user\workspace\xyz\bin\something"


 类似资料:
  • 问题内容: 有一个URL,如何检索其路径部分? http://www.costo.com/test1/test2 如何获得“ test1 / test2” 问题答案: 您想要这样的东西: 其实那会给你的。您只需要删除第一个即可获得所需的内容: 现在您将进入。

  • 至少有两个用例: 除非用户提供筛选器参数,否则显示网格数据是没有意义的 返回标记视图时,不应将显示的数据替换为当前数据。(更新中有进一步阐述) 作为Vaadin 14+的新手,我不知道如何实现这一点。每次显示我的时,都会查询的count和fetch回调。调用来自网格的。 我的用于在和之间切换 是一个,用于将的内容从切换到。 用例2是:当返回到时,的状态应该与以前完全相同(这与很好地配合)。 打开-

  • 问题内容: 我需要使用Java代码对URL进行编码,以避免使用特殊字符,例如空格和%和&… etc 问题答案: URL的构造很棘手,因为URL的不同部分对允许使用什么字符有不同的规则:例如,加号保留在URL的查询部分中,因为它表示空格,但在URL的路径部分中保留了一个空格。加号没有特殊含义,空格编码为“%20”。 RFC2396解释(在2.4.2节中),完整的URL始终采用其编码形式:您获取各个组

  • 问题内容: 我想从流中获取编码。 第一种方法-使用InputStreamReader。 但是它总是返回OS编码。 输出:GBK 第二种方法-使用UniversalDetector。 但是它总是返回null。 输出:空 我怎样才能正确?:( 问题答案: 让我们恢复情况: InputStream传送字节 *阅读器以某种编码传递字符 新的InputStreamReader(inputStream)使用操

  • 我有一个NetBeans项目,我想在其中设计jasper报表,当我通过填充报表时,我发现了一条错误消息。 例外情况是: 线程“awt-eventqueue-0”java.lang.noClassDefounderror:org/apache/commons/logging/logFactory在net.sf.jasperReports.engine.util.jrloader.(jrloader.

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