Java中资源(resource)获取 Class.getResource() & ClassLoader.getResource()
2010-07-12 15:37
381 查看
Java中的资源可以是一个图片,xml文件,音频等等形式的文件,在开发的过程中尤其是对xml文件的使用相当频繁。在Java中,类Class和ClassLoader中提供了相应的方法去定位这些资源,如getResource()等方法。
资源名
完整的资源名也就是路径有绝对和相对之分,虽然他们都可以表示同一个资源文件,但使用起来确实有一定的差别。 在Java中,以反斜线(/)开始的路径被认为是绝对路径,相反,以非反斜线(/)开始的路径被称为相对路径。我们的认识中的绝对路径是没有前置的反斜线(/)的,如
这里还涉及到一些系统资源与非系统资源的问题(略)。
使用Class &ClassLoader获取资源
Class & ClassLoader获取资源的时候都需要使用到资源名。资源名传递给Class的方法时,可以使用前置反斜线(/)表示这是一个绝对路径,而不使用前置反斜线(/)的时候表示一个相对路径。资源名传递给ClassLoader的方法时,资源文件是被看作一个Java类来加载的。
Class
使用Class的时候,传递给它的资源名称既可以是绝对路径,也可以是相对路径。而反斜线(/)一般是代表编译后的class的根目录,而相对路径则是相对于当前调用者所属类的路径。
ClassLoader
只用ClassLoader的时候,资源文件被看作一个类文件来加载的,传递给ClassLoader的名称必须符合Java规范定义的名称(Binary Name),对应Java的类而言,那就是包名.类名,如果把Java的Class文件也看成一种资源的话,那么这个资源的名称就是:包名.类名.class,
例如java.lang.String.class,这种格式的资源名称都是从编译后的class根目录开始表示的(Java包的文件层次结构),而且对classpath路径上的Jar包也是适用的。对于一般意义上的资源文件,相比Java的Class文件只是文件后缀不同而已。
资源名
完整的资源名也就是路径有绝对和相对之分,虽然他们都可以表示同一个资源文件,但使用起来确实有一定的差别。 在Java中,以反斜线(/)开始的路径被认为是绝对路径,相反,以非反斜线(/)开始的路径被称为相对路径。我们的认识中的绝对路径是没有前置的反斜线(/)的,如
E:/some/directory/path/file.xml,其实在Java中的表示是有前置的反斜线(/)的。Java中获取资源的URL后真实地址是这个:
file:/E:/workspace/Test/bin/com/test/Main.class
这里还涉及到一些系统资源与非系统资源的问题(略)。
使用Class &ClassLoader获取资源
Class & ClassLoader获取资源的时候都需要使用到资源名。资源名传递给Class的方法时,可以使用前置反斜线(/)表示这是一个绝对路径,而不使用前置反斜线(/)的时候表示一个相对路径。资源名传递给ClassLoader的方法时,资源文件是被看作一个Java类来加载的。
Class
使用Class的时候,传递给它的资源名称既可以是绝对路径,也可以是相对路径。而反斜线(/)一般是代表编译后的class的根目录,而相对路径则是相对于当前调用者所属类的路径。
ClassLoader
只用ClassLoader的时候,资源文件被看作一个类文件来加载的,传递给ClassLoader的名称必须符合Java规范定义的名称(Binary Name),对应Java的类而言,那就是包名.类名,如果把Java的Class文件也看成一种资源的话,那么这个资源的名称就是:包名.类名.class,
例如java.lang.String.class,这种格式的资源名称都是从编译后的class根目录开始表示的(Java包的文件层次结构),而且对classpath路径上的Jar包也是适用的。对于一般意义上的资源文件,相比Java的Class文件只是文件后缀不同而已。
相关文章推荐
- Java中获取classpath路径下的资源文件【ClassLoader.getSystemResource("")获取当前ClassPath的绝对URI路径,还可以以流的形式获取文件】
- Java class.getClassLoader().getResource("")获取资源路径
- Java class.getClassLoader().getResource("")获取资源路径
- 相对路径获取JAVA配置文件Class.getResourceAsStream() & ClassLoader的getResourceAsStream()
- Java class.getClassLoader().getResource("")获取资源路径
- Class和ClassLoader.getResource获取资源
- Java 使用getClass().getResourceAsStream()方法获取资源
- JAVA中路径问题总结Class.getResourceAsStream() & ClassLoader的getR...
- Java 使用getClass().getResourceAsStream()方法获取资源
- Class.getResource和ClassLoader.getResource 获取资源文件路径
- Class.getResourceAsStream()与ClassLoader.getResourceAsStream()获取资源时的路径说明
- 【JAVA学习】读取文件getClassLoader().getResourceAsStream("xxx")
- Java中取资源时,Class.getResource和ClassLoader.getResource
- java 引用资源-ClassLoader.getResource()方法
- class getResourceAsStream 和 classloader getResourceAsStream获取资源的不同
- Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
- Java获取资源路径(getResource)
- java.lang.ClassLoader中方法getResourceAsStream与ClassName.class.ResourceAsStream方法两者路径的区别
- Thread.currentThread().getContextClassLoader().getResourceAsStream("myConfig.xml"));//在src下寻找myC
- Java中getResourceAsStream,Class.getClassLoader()