我的Maven Web服务项目具有以下基本结构:

MyWebService\
|-- src\
|   |-- main\
|   |   |-- java\
|   |   `-- resources\
|   |       `-- csvfiles\
|   |           `-- data.csv
|   `-- test\
`-- target\
    |-- classes\
    `-- test-classes\


我正在尝试访问csvfiles子目录的resources子目录中的.csv文件。

我有一个使用此代码的课程:

public class ReadCSVFiles {
    public void read(){
        String separator = System.getProperty("file.separator");
        ClassLoader cl = ReadCSVFiles.class.getClassLoader();
        URL url = cl.getResource(separator + "src" + separator + "main" + separator + "resources" + separator + "csvfiles" + "data.csv");
        url.toString();
    }
}


路径最终是:

\src\main\resources\csvfiles\data.csv


我也尝试过这条路:

src\main\resources\csvfiles\data.csv


每当我运行应用程序时,总是在NullPointerException行上得到一个url.toString()

因此,我该如何访问那些.csv数据文件?

最佳答案

如果您正在使用类加载器在类路径(资源文件夹)中获取资源,则只需使用相对路径即可:

ReadCSVFiles.class.getClassLoader().getResource("csvfiles/data.csv");

Javadoc

09-09 20:41