I. 加载资源文件
I. 加载资源文件
更新日期:2021-01-11
1. 概述
使用资源文件是一个很常见的需求。
在Maven工程中,src/main/resources这个目录是默认的存放资源文件的目录,我们也可以自定义其他的目录。
问题是加载资源文件的代码到底怎样写才正确呢?
2. 加载资源文件
有两个名字非常相似的系列函数提供了这一功能,他们是:
- class.getResource系列
- classLoader.getResource系列
使用的时候,class和classLoader取得必须要使用和目标资源文件在一个模块中的Java类去取得。 比如,使用我的程序的main函数所在的类取得。
取得class和classLoader对象
1 2 3 4 5 | |
他们在使用的时候也不太一样。class加载资源文件时要以"/"开头,而classLoader不能以"/"开头。 下面来看示例代码:
加载资源文件
1 2 3 4 5 6 7 | |
3. 关于遍历资源文件夹
先说结论:
无法遍历资源文件夹。只能使用资源文件全名一个一个加载。
因为在实际运行的时候,资源文件是在Jar包内部,所以无法像本地文件那样去遍历访问。
要注意的是:classLoader有一个getResources()函数,看起来好像能枚举多个资源文件,然后遍历。但是其实这个函数的行为与我们想象中的大不一样。它并不能实现我们的功能,最好不要使用这个函数。