需求
新建maven工程, 如下图所示,现在想在BatchJob类中读取resources资源路径下data目录下的wc文件,代码该如何编写呢
获取路径代码
1 通过BatchJob类class本身
val path2 = this.getClass.getResource("").getPath
val path3 = this.getClass.getResource("/").getPath
结果
path2=/D:/programs/flink/target/classes/com/dh/flink/
path3=/D:/programs/flink/target/classes/
由结果可知,class获取到的相对路径是类class本身所在的包目录路径, 绝对根路径"/" 则获取的是classes目录的根路径
2 通过class的类加载器
val path4 = this.getClass.getClassLoader.getResource("").getPath
val path5 = this.getClass.getClassLoader.getResource("/").getPath
结果
path4=/D:/programs/flink/target/classes/
Exception in thread "main" java.lang.NullPointerException
at com.dh.flink.BatchJob$.main(BatchJob.scala:51)
at com.dh.flink.BatchJob.main(BatchJob.scala)
由结果可知, class 加载器获取的相对路径是classes目录的根路径,绝对根路径"/" 则获取到的为空,或者不存在