`
cqyqing
  • 浏览: 56922 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Class.getResourceAsStream 和 ClassLoader.getResourc

 
阅读更多
这两个方法还是略有区别的, 以前一直不加以区分,直到今天发现要写这样的代码的时候运行
错误, 才把这个问题澄清了一下。

基本上,两个都可以用于从 classpath 里面进行资源读取,  classpath包含classpath中的路径
和classpath中的jar。

两个方法的区别是资源的定义不同, 一个主要用于相对与一个object取资源,而另一个用于取相对于classpath的
资源,用的是绝对路径。

在使用Class.getResourceAsStream 时, 资源路径有两种方式, 一种以 / 开头,则这样的路径是指定绝对
路径, 如果不以 / 开头, 则路径是相对与这个class所在的包的。

在使用ClassLoader.getResourceAsStream时, 路径直接使用相对于classpath的绝对路径。

举例,下面的三个语句,实际结果是一样的:
   com.explorers.Test.class.getResourceAsStream("abc.jpg")
= com.explorers.Test.class.getResourceAsStream("/com/explorers/abc.jpg")
= ClassLoader.getResourceAsStream("com/explorers/abc.jpg")
分享到:
评论

相关推荐

    Java 使用getClass().getResourceAsStream()方法获取资源

    `ClassLoader`是Java用来加载类和资源的对象,它能够遍历整个`Classpath`来寻找指定的资源。由于`getClassLoader().getResourceAsStream()`是从类路径的根开始查找,所以也不需要在`fileName`前添加斜杠。 当你的...

    java-loadresource.rar

    InputStream stream = MyClass.class.getResourceAsStream("/config.properties"); ``` 使用`InputStream`,你可以通过`BufferedReader`或`DataInputStream`等类来读取资源的内容。 这两个方法之间的主要区别在于...

    Java文件路径详解

    例如,com.explorers.Test.class.getResourceAsStream("abc.jpg") 和 com.explorers.Test.class.getResourceAsStream("/com/explorers/abc.jpg") 都可以获取到 abc.jpg 文件的 InputStream 对象。 ClassLoader....

    java文件路径获取

    InputStream inputStream = Test.class.getResourceAsStream("abc.jpg"); ``` 3. 使用`ClassLoader.getResourceAsStream`: ```java InputStream inputStream = Test.class.getClassLoader()....

    Java 读取资源文件

    InputStream in = MyClass.class.getResourceAsStream("/config.properties"); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); // 读取内容... ``` 2. 使用`ClassLoader.getResource...

    java读取资源文件

    Class<?> currentClass = MyClass.class; // 通过相对路径获取资源 InputStream is = currentClass.getResourceAsStream("/images/myImage.png"); // 或者,如果资源与当前类在同一包下,可以省略开头的 "/" is...

    Java-recourse.rar_java读取recouse

    String content = IOUtils.toString(YourClass.class.getResourceAsStream("/resource.txt"), StandardCharsets.UTF_8); ``` 5. **Spring Framework**:在Spring框架中,可以使用`Resource`接口来操作资源,例如...

    java用类加载器的5种方式读取.properties文件

    例如,在某些情况下,我们可能需要使用类名.class.getResourceAsStream()方法来读取.properties文件,而在其他情况下,我们可能需要使用类名.class.getClassLoader().getResourceAsStream()方法。 无论我们选择哪种...

    jwwe学习资料,jwwe学习资料

    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); ``` ### 6. 使用`java.lang.ClassLoader.getSystemResourceAsStream()` 这是一...

    Java读取Properties文件的六种方法.txt

    InputStream in = MyClass.class.getClassLoader().getResourceAsStream("config.properties"); if (in != null) { try { props.load(in); } catch (IOException e) { e.printStackTrace(); } } ``` #### 3. ...

    Java加载properties文件的六种方法

    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); ``` 6. **使用 `java.lang.ClassLoader` 类的 `getSystemResourceAsStream()...

    aspose-words-19.2-jdk16 本地仓库地址

    InputStream is = com.aspose.words.Document.class.getResourceAsStream("/com.aspose.words.lic_2999.xml"); License aposeLic = new License(); aposeLic.setLicense(is); result = true; is.close(); } ...

    ClassLoader

    String filename = name.substring(name.lastIndexOf(".") + 1) + ".class"; // 获取类文件名 InputStream is = getClass().getResourceAsStream(filename); // 获取类文件输入流 if (is == null) { // 如果输入...

    aspose-words-19.6-crack.jar

    InputStream is = com.aspose.words.Document.class .getResourceAsStream("/com.aspose.words.lic_2999.xml"); License asposeLicense = new License(); asposeLicense.setLicense(is); is.close(); } catch ...

    java读取配置文件的实例代码

    InputStream inputStream = ConfigReader.class.getResourceAsStream("/config.properties"); // 使用Properties类读取配置文件 Properties props = new Properties(); try { // 加载流中的数据 props.load...

    dom4j.jar.jar

    InputStream is = Demo1.class.getResourceAsStream("/students.xml");// src目录下 // 1. 获得文档解析器工厂对象 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); // 2. ...

    aspose pdf 10.8.0 for java

    刚开始简单破解了一下。 生成PDF都没问题,后来发现生成... InputStream is = XXX.class.getResourceAsStream("/pdflicense.xml"); license.setLicense(is); is.close(); 其中pdflicense.xml已经包含在jar文件里面

    Java中getResourceAsStream用法分析

    当资源文件与`.class`文件位于同一目录下时,可以直接使用类名和资源文件名调用`getResourceAsStream`,例如: ```java me.class.getResourceAsStream("myfile.xml"); ``` 2. **子目录加载** 如果资源位于类的...

    使用J2SE API读取Properties文件的六种方法

    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); ``` 这个方法可以处理任何由类加载器加载的资源。 6. **使用java.lang....

    API读取Properties文件的六种方法

    InputStream in = ClassLoaderResourceExample.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); // 示例:获取配置文件中的属性 String dbUrl = p....

Global site tag (gtag.js) - Google Analytics