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()

最新文章

  1. 【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)
  2. zpf框架的business使用方法
  3. 【POJ】【1739】Tony's Tour
  4. 一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差
  5. python模块之socket
  6. C#编译时出现“不安全代码只会在使用 /unsafe 编译的情况下出现”错误的解决
  7. angularjs表单中enter键提交
  8. Java 中变量初始化、子类和父类构造器调用的顺序
  9. 设计模式C++学习笔记之十一(Bridge桥梁模式)
  10. $gopath not set的解决办法
  11. MFC笔记5
  12. Alpha阶段项目复审(冲鸭队)
  13. 浅谈css3长度单位rem,以及移动端布局技巧
  14. Multiplexer
  15. python environ PYTHON_EGG_CACHE
  16. 6. EM算法-高斯混合模型GMM+Lasso详细代码实现
  17. 【iOS开发】获取wifi的SSID
  18. was缓存以致web.xml更改无效
  19. 简单说一说对JavaScript原型链的理解
  20. maven中profile的激活方式

热门文章

  1. halcon与C#混合编程进阶版
  2. 转: requestAnimationFrame,Web中写动画的另一种选择
  3. Python GUI开发环境的搭建
  4. 关于crontab笔记
  5. android错误之==与equals的区别
  6. POJ 1556 The Doors(计算几何+最短路)
  7. Webserver管理系列:9、创password重设盘
  8. centos6.5设备mysql5.6
  9. 180行ruby代码搞定游戏2048
  10. linux 知识整理1linux 常见的目录