java中获取路径中的空格处理(%20)问题
在java中获取⽂件路径的时候,有时候会获取到空格,但是在中⽂编码环境下,空格会变成“%20”从⽽使得路径错误,解决办法如下:
1.String path=Resource("").getPath();//得到路径
2.//String path=Resource("").toString();//这个不⾏,⽆法处理⾥⾯的空格。
3.//System.out.println(path);
4.path=URLDecoder.decode(path,"utf-8");//关键啊!
应⽤部署时,发⽣⽂件读取错误。发现是部署路径中含有空格的⽂件夹名。
然后把应⽤服务器位置迁移了。
从⽹上到如下⽅案:
1, TestURL().Resource("").getPath()或TestURL().Resource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应⽤。
原因是URL对空格,特殊字符(%,#,[]等)和中⽂进⾏了编码处理。
例如:空格变为%20。
url编码处理有解决⽅法(1),使⽤repaceAll("%20",' ')替换后,只能解决空格问题。但是路径中包含%和中⽂就不⾏了。
有解决⽅法(2),使⽤URLDecoder.decode(str,"UTF-8")解码,但是只能解决⼀部分,若路径中含有+,也是不能解决的,原因是URL并不是完全⽤de(str,"UTF-8")编码的,+号被解码后,却变成了空格。
⽅法(3),可以解决所有的问题,⽤TestURL().Resource("").toURI().getPath(),但是需要处理URISyntaxException异常,⽐较⿇烦点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。