File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问。只是URI和URL的应用范围不同,URI来的更广。
那么为什么要使用toURI()而不是toURL()呢??
因为此方法不会自动将链接中的非法字符转义。而在File转化成URI的时候,会将链接中的特殊字符如#或!等字符进行编码。
虽说在浏览器中没有转译不会有问题,因为有的浏览器已经自动转译了。但很多程序或者组件对于这样的路径都会抛出异常,认为是有错误的。
所以要将File转换成URL的话,请使用file.toURI().toURL(),而不是file.toURL()