resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去。获取资源文件的方法说明:
XXX.class.getResourceAsStream ()返回的是inputstream
XXX.class.getResource("/")返回URL,是classpath的位置
XXX.class.getClassLoader().getResource("") 返回的是classpath的位置

读取resources里的文件
Properties prop = new Properties();
try {
prop.load(this.getClass().getResourceAsStream("/kafka-http.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

关键在于后面的路径的写法:
"kafka-http.properties" 是去当前这个class文件同一个目录下找(也即是当前这个java文件同一个目录下必须有这个properties文件,才能复制到对应的class目录)
"/kafka-http.properties" 是去整个项目的classes目录下去找,也即是上面提到过的target/classes

所以如果将属性文件放到src/main/resources里,那么要用Class.getResourceAsStream("/kafka-http.properties")来读取。


参考:

http://www.jb51.net/article/106380.htm
http://blog.csdn.net/wenhuiqiao/article/details/8485879
http://www.cnblogs.com/lyhero11/p/5186022.html


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐