从 classpath 里面进行资源读取、加载,一般采用Class.getResourceAsStream和ClassLoader.getResourceAsStream方法。
Class.getResourceAsStream主要用于读取相对于当前Class的资源;
ClassLoader.getResourceAsStream用于读取相对于classpath的资源。
在使用Class.getResourceAsStream 时, 资源路径访问有两种方式, 一种以 / 开头,则这样的路径是指定绝对路径; 如果不以 / 开头, 则路径是相对于这个class所在的包目录的。
在使用ClassLoader.getResourceAsStream时, 路径直接使用相对于classpath的绝对路径。
举例,假设classpath下有如下目录和文件:
classpath:/com/example/Test.class
classpath:/com/example/abc.txt
则下面的三个语句,实际结果是一样的:
com.example.Test.class.getResourceAsStream("abc.txt");
com.example.Test.class.getResourceAsStream("/com/example/abc.txt");
ClassLoader.getResourceAsStream("com/example/abc.txt");
本文介绍了Java中从classpath加载资源文件的两种主要方法:Class.getResourceAsStream和ClassLoader.getResourceAsStream的区别及使用场景。通过实例说明了如何正确指定资源路径。
7759

被折叠的 条评论
为什么被折叠?



