我想知道以下两者之间的区别:
MyClass.class.getClassLoader().getResourceAsStream("path/to/my/properties");
and
MyClass.class.getResourceAsStream("path/to/my/properties");
谢谢。
来自 JavadocClass.getResourceAsStream() http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream%28java.lang.String%29:
该方法委托给该对象的类加载器。
在委派之前,使用以下算法根据给定资源名称构造绝对资源名称:
- If the
name
以“/”(“\u002f”)开头,那么资源的绝对名称就是“/”后面的名称部分。
- 否则,绝对名称的形式如下:
modified_package_name/name
其中,modified_package_name 是该对象的包名称,其中“/”替换为“.” ('\u002e')。
换句话说,如果“路径”以“/”开头,它们会执行相同的操作,但如果不是,则在后一种情况下,路径将相对于类的包,而类加载器路径将是绝对的。
简而言之,第一个获取path/to/my/properties
第二个获取package/of/myclass/path/to/my/properties
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)