建立一个maven web项目,project-name/src/main下面有3个目录,java、resources、webapp
java中存放java源代码,package等
resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去
webapp就相当于是我们的web项目的WebContent目录
下面我们来看一下如何读取resources里的文件
Properties prop = new Properties(); try { prop.load(this.getClass().getResourceAsStream("/kafka-http.properties")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
java.lang.Class.getResourceAsStream(String name)这个方法。
关键在于后面的路径的写法:
"kafka-http.properties" 是去当前这个class文件同一个目录下找(也即是当前这个java文件同一个目录下必须有这个properties文件,才能复制到对应的class目录)
"/kafka-http.properties" 是去整个项目的classes目录下去找,也即是上面提到过的target/classes
"/kafka-http.properties" 是去整个项目的classes目录下去找,也即是上面提到过的target/classes
所以如果将属性文件放到src/main/resources里,那么要用Class.getResourceAsStream("/kafka-http.properties")来读取。