常见的有以下两种获取资源文件的方法:
App.class.getClassLoader().getResourceAsStream(String name)
Returns an input stream for reading the specified resource.
The search order is described in the documentation for getResource(String)
.
默认从classpathe中找文件,name不能带“/”,否则会抛空指针
App.class.getResourceAsStream(String name):
查找资源通过给定名称,查询资源的规则与给定的类的class load来实现,这个方法由类的loader来执行,如果这个类由bootstrap加载,那么方法由ClassLoader.getSystemResourceAsStream代理执行。
代理之前,绝对的资源名称通过传入的name参数以下算法进行构造:
如果name以"/"开头,那么绝对路径是/后边跟的名字
如果name不是以"/"开头,那么绝对路径是package名"."换成“/”以后再加name,例如:
com.abc.App就是/com/abc/App/name