maven工程读取resources配置文件的正确姿势

我们maven项目结构如下:
maven工程读取resources配置文件的正确姿势_第1张图片
使用相对路径来读取resources目录下的资源文件

InputStream in = new InputStream(new File(“src/main/resources/car.txt”));

这样在本地运行的时候,是能正常读取到的,不会报错,但是如果打成jar包,运行的时候就会报路径错误。
从jar包的结构可以看到,resources目录的资源文件位置变了,在项目的最外层了,所以导致相对路径也发生了变化。
maven工程读取resources配置文件的正确姿势_第2张图片
这个时候,我们可以通过getClassLoader()方法来获取正确的配置文件路径。
(this也可以换成类的名称)

InputStream in = this.class.getClassLoader().getResourceAsStream(path);

这样,在本地运行或者jar包运行都能正常读取到配置文件了。

欢迎关注同名公众号:“我就算饿死也不做程序员”。
交个朋友,一起交流,一起学习,一起进步。maven工程读取resources配置文件的正确姿势_第3张图片

你可能感兴趣的:(Java,java,maven,resources,配置文件)