我的项目目录结构(在Eclipse中):
MyProject/
src/ --> "source directory" on Eclipse's classpath/buildpath
com.me.myapp
Driver
myconfig.txt
In Driver
,我有以下代码:
public class Driver {
public static void main(String[] args) {
InputStream is = ClassLoader.getSystemClassLoader.getResourceAsStream("myconfig.txt");
if(is == null)
System.out.println("input stream is null");
else
System.out.println("input stream is NOT null :-)");
}
}
当我运行它时,我得到以下控制台输出:
input stream is null
Why?我是否放置了myconfig.txt
在错误的位置?我是否错误地使用了 ClassLoader API?还有别的事吗?
如果它在同一个包中使用
InputStream is = Driver.class.getResourceAsStream("myconfig.txt");
你拥有它的方式
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("myconfig.txt");
它在类路径的根目录中查找该文件。你可以使用
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("com/me/myapp/myconfig.txt");
搜索规则在javadoc 的ClassLoader#getResource(String) http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29和javadoc 的Class#getResource(String) http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)