Java 文件路径的读取

记得在操作系统中了解到文件读取有两种方式,当然这在各编程语言中也是通用的,所以java路径也分,相对和绝对路径。

绝对路径

绝对路径URI ,听着和URL很相似,那我们就来看看吧。

URI(Uniformresource Identifier)统一资源标示符.URL统一资源定位符,是一个定位器,还说明了具体如何找到资源.所以他们就有一种抽象和继承的关系。URI抽象的说明了统一资源表示符号,而URL是具体的标识符的方式.

如何使用呢。如我们想获取一个类的具体位置。只要如下方式:

例如:test.class.GetResouce("");

如果中间加了"/"test.class.GetResouce("/");获取的就是该java类的跟目录了。两者是不同的。

Java 文件路径的读取_第1张图片

相对路径

通常是相对于某一绝对路径的,我们常使用的是相对于ClassPath

 如:使用ClassLoader类的getResouce()等方法,得到的是当前classPath相对路径。

 URL ds=Thread.currentThread().getContextClassLoader().getResource("");
System.out.print(ds+"\n");
System.out.print(ClassLoader.getSystemResource(""));

两种结果是相同的.

Java 文件路径的读取_第2张图片

若要读取内容,直接使用字节流文件

InputStream in=ClassLoader.getSystemResourceAsStream(""beanx-config.xml"");

ClassLoader是类加载器,可以指定加载特殊资源.上图中为何相同呢.原因在于Thread.currentThread()设定了当前的 ClassLoader.他们都指定默认的路径.所以两者路径相同. 

总体认识:

URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的.

 


你可能感兴趣的:(java,url)