使用Class &ClassLoader获取资源

使用Class &ClassLoader获取资源
Class & ClassLoader获取资源的时候都需要使用到资源名。资源名传递给Class的方法时,可以使用前置反斜线(/)表示这是一个绝对路径,而不使用前置反斜线(/)的时候表示一个相对路径。资源名传递给ClassLoader的方法时,需要只用去掉前置反斜线(/)的“绝对路径”,而不能使用相对路径。
Class 
使用Class的时候,传递给它的资源名称既可以是绝对路径,也可以是相对路径。而反斜线(/)一般是代表编译后的class的根目录,而相对路径则是相对于当前调用者所属类的路径。
ClassLoader
只用ClassLoader的时候,资源文件被看作一个类文件来加载的,它的资源名是去掉反斜线(/)表示的“绝对路径”,都是从编译后的class根目录开始表示的,对于相对路径而言,必须转换为相应的“绝对路径”之后才能使用ClassLoader来定位加载。

资源名

完整的资源名也就是路径有绝对和相对之分,虽然他们都可以表示同一个资源文件,但使用起来确实有一定的差别。 在Java中,以反斜线(/)开始的路径被认为是绝对路径,相反,以非反斜线(/)开始的路径被称为相对路径。我们的认识中的绝对路径是没有前置的反斜线(/)的,如
E:/some/directory/path/file.xml  
,其实在Java中的表示是有前置的反斜线(/)的。Java中获取资源的URL后真实地址是这个:
file:/E:/workspace/Test/bin/com/test/Main.class  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章