class.getClassLoader().getResourceAsStream(“path“) 和class.getResourceAsStream(“path“)的区别

区别

class.getResourceAsStream("")获得的是相对路径
class.getClassLoader().getResourceAsStream("")加载器获得是绝对路径

Class.getResourceAsStream(String path) :


path 不以’/‘开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath(Src根目录)根下获取。
其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。

Class.getClassLoader.getResourceAsStream(String path) :


默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。

ServletContext. getResourceAsStream(String path):
默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。

class.getResourceAsStream("")

class.getClassLoader().getResourceAsStream("")


如果是在SRC 下,可以用第一种方式,如果是在WEB环境下,用/WEB-INF/classes/xxx.file 应该是可以的,但是这个我没有试过。

补充:

JAVA中类的加载器:一共有三种加载器

bootstrap classloader :负责加载JAVA核心类( jre 下lib和class目录中的内容)
extension classloader :负责加载JAVA扩展类(jre 下lib/ext 目录中的内容)
system classloader :负责加载应用指定的类 (环境变量classpath中配置的内容)

原文链接:https://blog.csdn.net/chinasi2012/article/details/88555077

### 回答1: `NewBeanFactory.class.getClassLoader().getResourceAsStream("")` 可以用于获取类加载器中的根路径(root path)下的资源文件流。 在 Java 应用程序中,类加载器(ClassLoader)用于加载 Java 类文件和其他资源文件。类加载器将类文件加载到内存中,并且在需要时对其进行解析和链接。资源文件(例如配置文件)通常也会被包含在类路径中,以便应用程序可以轻松地访问这些文件。 `getResourceAsStream` 方法是 ClassLoader 类中的一个方法,它用于从类路径中获取资源文件的输入流。在这个特定的代码中,`NewBeanFactory.class.getClassLoader().getResourceAsStream("")` 表示获取 NewBeanFactory 类的类加载器,然后使用 `getResourceAsStream` 方法获取根路径下的资源文件流。 这个方法的参数是一个字符串,表示要获取的资源文件的路径。如果该参数为空字符串,则表示获取类路径中的根目录。在这种情况下,它返回的是该类加载器的根路径下的所有资源文件的输入流,这些资源文件可以用于读取或加载配置文件或其他资源文件。 ### 回答2: NewBeanFactory.class.getClassLoader().getResourceAsStream("") 的作用是获取当前类所在的类加载器加载的资源文件流。该方法可以用来读取类路径下的资源文件,比如配置文件、图片等。 具体来说,getResourceAsStream("") 方法中传入的参数是资源文件的路径,可以是相对路径或绝对路径。其中,参数接受的相对路径是相对于类路径的路径,可以直接使用“/”开头的绝对路径。如果传入空字符串"",则表示获取类路径下的根目录,即获取类路径的资源文件流。 这个方法在实际开发中经常用于读取配置文件的操作。比如,当我们需要读取一个properties文件的内容时,可以将该文件放在类路径下,然后使用 getResourceAsStream("") 方法来获取该文件的输入流,再使用 Properties 类来读取该输入流从而得到配置文件的内容。 另外,getResourceAsStream("") 方法返回的是一个输入流,可以将该输入流传给其他类库或者进行文件的读取、解析等操作。 总之,NewBeanFactory.class.getClassLoader().getResourceAsStream("") 方法可以方便地获取类路径下的资源文件流,是读取类路径下资源文件的常用方法,具有很大的实用价值。 ### 回答3: NewBeanFactory.class.getClassLoader().getResourceAsStream("") 是一个用于获取类路径下资源的方法。 在Java开发中,资源文件通常是以配置文件的形式存在的,比如.properties配置文件、XML文件等。这些文件需要被读取和加载到程序中使用。getResourceAsStream("")方法就是为了方便地从类路径下读取这些资源文件而存在的。 具体来说,NewBeanFactory是一个类,在调用该类的getClassLoader()方法后,会返回该类的类加载器。而getClassLoader().getResourceAsStream("")则是通过类加载器来获取类路径下的资源文件的输入流。 这个方法的参数是资源文件的路径,传入空字符串""表示获取类路径下的根目录。比如,如果你的资源文件放置在src目录下的config文件夹下,那么传入的字符串应该是"/config/"。 getResourceAsStream("")方法返回的是一个输入流,可以通过读取这个输入流来获取资源文件的内容。比如,可以使用BufferedReader来读取文本文件,InputStream来读取二进制文件等。 总结一下,NewBeanFactory.class.getClassLoader().getResourceAsStream("")的作用是通过类路径下的资源文件的路径来获取该资源文件的输入流,进而可以读取和使用这个资源文件的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值