Java读取文件时中文路径处理 |
您所在的位置:网站首页 › sentient包包中文名怎么读 › Java读取文件时中文路径处理 |
在日常Java操作文件开发中,经常会碰到因为中文路径无法操作文件的问题,但是又因为英文不给力又不得不用中文命名,所以就因为这中文在使用中就会遇到一系列的问题。 TestURL().class.getResource("").getPath()或TestURL().class.getResource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应用。 原因是URL对空格,特殊字符(%,#,[]等)和中文进行了编码处理。 读取文件路径时可能存在以下情况: 1、空格,如果出现空格会转变成“%20” 2、中文路径,如果出现中文路径会变成URI编码“%e5%bc%80%e5%8f%91%e5%b7%a5%e7%a8%8b” 处理以上问题,可以有如下解决方法: 1、对于空格问题,可以使用replaceAll("%20"," ") 2、URLDecoder.decode("string","UTF-8");,但是这种方法当路径上有+号时会变成空格,所以也会有问题。 3、完美解决方法:getResource("").toURI().getPath()。可以同时解决以上两个问题,但是需要处理URISyntaxException异常,比较麻烦点。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |