我一直很高兴使用 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/