java - 如何让 Maven 从我的资源文件夹中读取文件

标签 java maven

我一直很高兴使用 JUnit 来运行我的测试,一切都很好。

但是,我现在需要使用 Maven,但由于某种原因它找不到我的任何资源文件。

文件位于预期位置:src/main/resources

我正在使用以下代码来尝试读取文件:

public Map<String, String> readCsv(String filename) {

    Map<String, String> headersAsMap;
    CSVDataManipulator csvDataManipulator = new CSVDataManipulator();
    ClassLoader classLoader = getClass().getClassLoader();
    String wrkbook = new File(classLoader.getResource(filename).getFile()).toString();
    headersAsMap = csvDataManipulator.getAllRecordsAsMap(wrkbook);
    return headersAsMap;
}

但是,尽我所能,它找不到该文件。 我尝试了很多不同的代码,并尝试将文件移动到不同的位置,但我无法让 Maven 找到我的资源文件。

任何帮助将不胜感激! 谢谢

最佳答案

据我了解,classLoader.getResource(..) 期望文件位于与类的包匹配的文件夹结构中。因此,如果您的类的包是 com.matt.stuff,那么您必须将 csv 文件放在 src/main/resources/com/matt/stuff 中。

或者您可以使用它来获取您的 csv 文件:

private static String readFile(String fileName) throws IOException {
    //filename can be src/main/resources/my-csv.csv
    return new String(Files.readAllBytes(Paths.get(fileName))); 
}

关于java - 如何让 Maven 从我的资源文件夹中读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54924072/

相关文章:

java - 如何读取位于项目文件夹java中的文件

java - IntelliJ IDEA 测试 - 如何显示分支覆盖率

java - Maven Eclipse错误: "Archive for required library cannot be read or is not a valid ZIP file"

maven - Gradle Maven-publish无法构建独立的Spring-boot应用程序

spring - Maven webResources 即时过滤

eclipse - 如何找出一个类属于哪个依赖项?

java - 三角函数应该被缓存吗?

java - HashMap 冲突会导致调整大小吗?

java - Java/Spring 中 Web 表单支持对象可接受的命名约定是什么?

java - Heroku 在日志中安装了错误的 jdk (8) 版本,但在终端中安装了良好的 jdk (11) 版本,这导致目标版本 : 11 无效