java之中file和url的区别,java中URL和File的相互转化

本文详细介绍了Java中URL和File之间的转换方法,包括URLtoFile和FiletoURL的实现,并提供了在JDK5.0环境下获取类路径和当前类绝对路径的各种方式。通过示例代码展示了如何从类路径或当前类的位置获取到文件系统的绝对路径。
摘要由CSDN通过智能技术生成

首先,想比较一下这两者的不同。URL用于网络,所以带有明显的protocol,而且对于中文及符号支持的很不好。File就是我们平常系统中的文件路径了,对于中文及符号都支持,但是已经没有protocol了。所以,虽然两者都可以表示文件路径,但是却不能混用了。

典型的URL和File路径的比较:

URL:file:/D:/my%20java/URL&FILE/%e5%9b%be%e7%89%87/tongji.jpg

File:D:/my java/URL&FILE/图片/tongji.jpg

其实两者是一个文件。

回到正题:

这是我在JDK5.0下找到的方法,JDK5.0以下不支持:

URL to File:

URL url=……;

File file=new File(url.toURI);

File to URL:

File file=……;

URL url=file.toURL();

得到classpath和当前类的绝对路径的一些方法   获得CLASSPATH之外路径的方法:   URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/   String path = new File(base.getFile(), "../../../"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name   下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。   1.FileTest.class.getResource("")   得到的是当前类FileTest.class文件的URI目录。不包括自己!   如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/   2.FileTest.class.getResource("/")   得到的是当前的classpath的绝对URI路径。   如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/   3.Thread.currentThread().getContextClassLoader().getResource("")   得到的也是当前ClassPath的绝对URI路径。   如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/   4.FileTest.class.getClassLoader().getResource("")   得到的也是当前ClassPath的绝对URI路径。   如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/   5.ClassLoader.getSystemResource("")   得到的也是当前ClassPath的绝对URI路径。   如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值