`
sd8089730
  • 浏览: 264086 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

getPath()返回路径包含的“%20”(空格)的处理

 
阅读更多
在使用类似这样:

 

Java代码  
this.getClass().getClassLoader().getResource("").getPath()   
 来获取文件路径时,里面的路径空格会被“%20”代替,这时候如果你用这个获取到的包含“%20”的路径来new一个File时,会出现找不到路径的错误。

在网上找了一下(链接:http://www.cumt.org/blog/493),说是“Java 的一个历史悠久的 bug”。于是有以下官方解决方法:

 

Java代码  
URI uri = new URI(url.toString());  FileInputStream fis = new FileInputStream(uri.getPath())   
 

但有另一种更好的办法,可以把中文路径的问题也一并解决:

 


Java代码  

configPath =UploadClobHelper.class.getClassLoader().getResource("./../../").getPath();

configPath = java.net.URLDecoder.decode(configPath,"utf-8");   

 

分享到:
评论

相关推荐

    Java路径问题汇总.pdf

    - `uri.getPath()`可能返回包含空格的路径,而`URL`通常返回"%20"表示空格。 - `new File(String filePath)`能接受正确格式的URI和带空格的相对或绝对路径,否则可能会抛出`FileNotFoundException`。 - `URL/URI`...

    JAVA获取文件绝对路径的方法

    请注意,处理 `URL` 时,有时需要将 `%20` 转换为空格,因为URL编码中空格通常被表示为 `%20`。 总的来说,Java 提供了多种方式来获取文件或资源的绝对路径,取决于你所处理的具体情况。选择合适的方法取决于你是否...

    java-servlet-api.doc

    这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 Java...

    url解码转码

    常见的需要转码的特殊字符包括空格、引号、括号等。在Java中,可以使用`java.net.URLEncoder`类来进行URL转码。 ```java String url = ...

    SHAJ_URI_Solve_java

    例如,空格会被编码为"%20"。 6. **提取组件**: 通过`getScheme()`, `getAuthority()`, `getPath()`, `getQuery()`, 和 `getFragment()`方法,可以分别获取URI的各个部分。 7. **异常处理**: 在处理URI时,...

Global site tag (gtag.js) - Google Analytics