1.Class.getResourceAsStream(String path):以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。 path
不以’/'开头时默认是从此类所在的包下取资源。
2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
三种写法 (前两种是Class.getResourceAsStream(String
path),后面是Class.getClassLoader.getResourceAsStream(String path) )
第一:前面有 “ / ”
“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面没有 “ / ”
代表当前类的目录
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
第三:使用getClassLoader(db.properties在classpath目录下)
输出了正确的123
当然也可以换成第一种写法,我都亲自试了一下
也输出了正确的123