java URI 与URL问题
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()
java URI 与URL问题的更多相关文章
- Java魔法堂:URI、URL(含URL Protocol Handler)和URN
一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日后查询,若有纰漏请大家指正! 二.从URI说起 1. 概念 URI(Uniform Reso ...
- JAVA URI URL 区别
String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22"; URI uri = U ...
- java的URI和URL到底是什么
在我们做开发时,经常有URI和URL弄混的问题,如果当时直接看URI和URL的源码就不可能弄混.首先我总结一下URI和URL的关系:他们的关系是:URL是一种特殊的URI,是URI包括URL, 下面用 ...
- java的URI和URL的关系
java的URI和URL到底是什么 在我们做开发时,经常有URI和URL弄混的问题,如果当时直接看URI和URL的源码就不可能弄混.首先我总结一下URI和URL的关系:他们的关系是:URL是一种特殊的 ...
- 【Web】URI和URL,及URL的编码
URI和URL是什么,以及他们的区别 URL,Uniform Resource Locator,统一资源定位符.用于表示网络上服务器的资源所在位置,比如我们输入浏览器的地址. URI,Uniform ...
- URI与URL的区别
(原网址:http://zhidao.baidu.com/question/38764759.html) Web上可用的每种资源 - HTML文档.图像.视频片段.程序等 - 由一个通过通用资源标志符 ...
- JAVA訪问URL
JAVA訪问URL: package Test; import java.io.BufferedReader; import java.io.IOException; import java.io.I ...
- java 打开浏览器 url
public class openBrowers { public static void main(String[] args) { try { //String url = "http: ...
- java web基础 --- URL重定向Filter
java web基础 --- URL重定向Filter httpRequest.getRequestDispatcher("/helloWorld").forward(httpRe ...
随机推荐
- ONFI闪存数据通道接口标准
早期的闪存产品每个厂家的设计标准各有不同,会碰到各种各样的问题,特别是到了06年之后,闪存产业市场需求开始发力,造成了迫切需要一个统一的标准来改变这个问题. 2007年1月,以英特尔,镁光,海力士,意 ...
- 利用BP神经网络预测水道浅滩演变
论文 <基于现代技术的河道浅滩演变研究> 利用BP神经网络来预测浅滩演变 BP输出因子:浅滩的年平均淤积厚度以及浅滩上最小水深,是反映浅滩变化的两个基本指标,是确定浅滩航道尺度能否满足航行 ...
- zzbank oneOpencloud Env linuxaix6.1 interactiveMaintain(nfs,aix genintall基于系统iso光盘,aix6.1 puppet-Agent,Cent6.4 puppetServer,agent time no syn case Er)
1,puppet--server,Client,Agent time no syn case eror puppet agent --server frontend -terr: Could not ...
- div中央
.histroyMsgSearch{ background:#Fff; text-align: center; } CSS 怎样使DIV层水平居中 今天用CSS碰到个非常棘手的问题,DIV本身未定义 ...
- Sharpui企业版-简单介绍【01】 【QQ群:206378966】
1. 什么是Sharpui Sharpui是居于DUI思想的一套界面引擎,採用纯c++开发,实现完整的消息处理机制.渲染引擎分离以及灵活的控件扩展,是一款c++真正意义上的界面和业务逻 ...
- tomcat 7 无法打开管理页面
在配置文件tomcat-users.xml中添加如下内容即可. <role rolename="admin"/> <role rolename="man ...
- C++运算符重载为非成员函数
#include<iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0 ...
- 下载文件 ,调用系统的方法(UIDocumentInteractionController) 查看
- NSFileManager的应用
单例,是在 一个文件中只创建一次就能够全部一起共享,多创建的地址是相同的 NSFileManager *manager=[NSFileManager defaultManager]; 是一个单例 ...
- 注解方式实现Spring声明式事务管理
1.编写实体类 public class Dept { private int deptId; private String deptName; public int getDeptId() { re ...