博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 读取文件路径空格和中文的处理
阅读量:6262 次
发布时间:2019-06-22

本文共 529 字,大约阅读时间需要 1 分钟。

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

从网上找到如下方案:
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异常,比较麻烦点。
来源: 

转载地址:http://jizpa.baihongyu.com/

你可能感兴趣的文章
STL源代码分析--萃取编程(traits)技术的实现
查看>>
Linux ALSA声卡驱动之一:ALSA架构简介【转】
查看>>
为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
查看>>
CentOS7.2 创建本地YUM源和局域网YUM源
查看>>
ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次...
查看>>
[转]WCF RIA Services
查看>>
R的绘图实例集锦
查看>>
How do you select a particular option in a SELECT element in jQuery? - Stack Overflow
查看>>
emacs 快捷键设置 基础知识篇
查看>>
艾伟:C# 4.0下的新特性
查看>>
Android ROM开发--ubuntu下编译CyanogenMod生成SDK
查看>>
Cocos2d下TexturePacker2.3版会给iphone, ipad通用版带来的问题
查看>>
全新的互动广告牌,待遇男女有别
查看>>
Language modeling meets inference networks
查看>>
mvc3学习之--安装
查看>>
Html5 学习系列(一)认识HTML5
查看>>
弗洛伊德算法
查看>>
((ios开发学习笔记 十))代码实现自定义TableView
查看>>
WPF 之转换器
查看>>
mongo-update 操作(2)
查看>>