码迷,mamicode.com
首页 > 编程语言 > 详细

java 读取文件路径空格和中文的处理

时间:2016-12-25 23:02:24      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:特殊字符   java   encode   pac   encoder   服务   使用   bsp   部署   

应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了。

从网上找到如下方案:
1, TestURL().class.getResource("").getPath()或TestURL().class.getResource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应用。 
原因是URL对空格,特殊字符(%,#,[]等)和中文进行了编码处理。 
例如:空格变为%20。 


有解决方法(1),使用repaceAll("%20",‘ ‘)替换后,只能解决空格问题。但是路径中包含%和中文就不行了。 
有解决方法(2),使用URLDecoder.decode(str,"UTF-8")解码,但是只能解决一部分,若路径中含有+,也是不能解决的,原因 是URL并不是完全用URLEncoder.encode(str,"UTF-8")编码的,+号被解码后,却变成了空格。 
方法(3),可以解决所有的问题,用TestURL().class.getResource("").toURI().getPath(),但是需要处理URISyntaxException异常,比较麻烦点。

java 读取文件路径空格和中文的处理

标签:特殊字符   java   encode   pac   encoder   服务   使用   bsp   部署   

原文地址:http://www.cnblogs.com/tv151579/p/6220443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!