为了账号安全,请及时绑定邮箱和手机立即绑定

如何访问我的 Maven Web 服务项目的资源目录中的文件?

如何访问我的 Maven Web 服务项目的资源目录中的文件?

largeQ 2022-10-26 16:44:24
我的 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 数据文件呢?
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

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

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

Javadoc


查看完整回答
反对 回复 2022-10-26
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

首先我不知道你为什么要在这里打印URL,classLoader.getResource已经把你的资源目录作为了这里的根目录。如果您想读取 CSV 并对该文件执行一些操作,则使用 InputStream 直接读取该文件。


像下面这样


public class ReadCSVFiles {

public void read(){

    String separator = System.getProperty("file.separator");

    ClassLoader cl = ReadCSVFiles.class.getClassLoader();

     try (InputStream inputStream = cl.getResourceAsStream("csvfiles/data.csv")) {


        InputStreamReader streamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);

        BufferedReader reader = new BufferedReader(streamReader);

       for (String line; (line = reader.readLine()) != null;) {

          // Process line

        }


    } catch (IOException e) {

        e.printStackTrace();

    }

}

}

或者,如果您需要获取 URL,然后通过 URL 加载文件,您可以尝试以下操作


URL url = cl.getResource("csvfiles/data.csv");

Path path = Paths.get(url.toURI());

List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);


查看完整回答
反对 回复 2022-10-26
  • 2 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信