java URI 与URL问题
2024-10-11 00:33:58
File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问。只是URI和URL的应用范围不同,URI来的更广。
那么为什么要使用toURI()而不是toURL()呢?如果要将文件转换成一个URL的话,这样来得更简单。因为toURL()存在bug。
在File转化成URI的时候,会将链接中的特殊字符如#或!等编码,而toURL()确不会。
如将“C:Documents and Settingstest.xsl”进行转化
toURI()得到的是:file:/C:/Documents and Settings/test.xsl
toURL()得到的是:file:/C:/Documents and Settings/test.xsl
也就是说toURI()将空格都转译成了 ,而toURL()什么都没管。sun也有人提到了这个bug(4273532,6179468)。
虽说在浏览器中没有转译不会有问题,因为有的浏览器已经自动转译了。但很多程序或者组件对于这样的路径都会抛出异常,认为是有错误的,这个bug中就有实实在在的例子。
所以要将File转换成URL的话,请使用file.toURI().toURL(),而不是file.toURL()
最新文章
- 【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)
- zpf框架的business使用方法
- 【POJ】【1739】Tony's Tour
- 一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差
- python模块之socket
- C#编译时出现“不安全代码只会在使用 /unsafe 编译的情况下出现”错误的解决
- angularjs表单中enter键提交
- Java 中变量初始化、子类和父类构造器调用的顺序
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- $gopath not set的解决办法
- MFC笔记5
- Alpha阶段项目复审(冲鸭队)
- 浅谈css3长度单位rem,以及移动端布局技巧
- Multiplexer
- python environ PYTHON_EGG_CACHE
- 6. EM算法-高斯混合模型GMM+Lasso详细代码实现
- 【iOS开发】获取wifi的SSID
- was缓存以致web.xml更改无效
- 简单说一说对JavaScript原型链的理解
- maven中profile的激活方式