如何获取 resouces 目录中的某个具体文件,网上已经有很多文章进行了说明。但有时候我们需要获取 resouces 目录的绝对地址,比如在使用 FreeMarker 模板引擎时,需要设置模板加载的目录。本文就介绍三种方法。
- 通过相对目录和 File API 获取
代码如下:
1 | String path = "src/main/resources/templates"; |
- 通过相对目录和 Java 7 以后的 Path API 获取
1 | Path templateFolder = Paths.get("src", "main", "resources", "templates"); |
- 通过指定特定文件间接获取
通过 resouces 中一个具体文件来间接获取。例如: 我们在 resources 目录下放一个名为 logback.xml 的文件,使用下面的代码
1 | String resouceName = "logback.xml"; |
最终,通过 file.getParent(), 我们可以获取该文件所在目录(也就是 resources 目录的)的绝对地址, 通过 file.file.getParentFile() 可以获取 resources 目录的文件句柄。
最后一种方法因为没有硬编码 “src”, “main”, “resources” 这些变量,因此无论在开发阶段还是在运行阶段都可以使用,是推荐的用法