java 讀取文件路徑空格和中文的處理


應用部署時,發生文件讀取錯誤,發現是部署路徑中含有空格的文件夾名,然后把應用服務器位置遷移了。

從網上找到如下方案:
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異常,比較麻煩點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM