java - 使用类路径在 java 中加载 CSV

标签 java spring csv

如何使用类路径加载csv文件? 在此之前,我尝试使用 FileReader 加载文件,该文件在本地运行时工作正常,但在部署到外部服务器时会引发 FileNotFound 等异常。下面的代码在本地工作,但是当部署到 tomcat 文件夹 www/[jar] 上的 jar 时,会抛出此异常 不幸的是,我无法提供原始代码。要点如下:

BufferedReader br = new BufferedReader(new FileReader("src/SSR.csv"));
    while ((line = br.readLine()) != null) {
        // use comma as separator
        String[] cols = line.split(",");
        map.put(cols[1],cols[0]); 

this is the exception

最佳答案

既然您用 spring 标记了这个问题,我想向您指出 Spring 框架提供的资源实现。该文档可以在以下位置找到:

Spring Support for Resources

对于您的 csv 文件,类似于

Resource csv = context.getResource("classpath:some/resource/path/my.csv");
InputStream inputstream = csv.getInputStream();

应该是一个起点。资源接口(interface)提供了一个

File getFile() throws IOException;

方法,但这仅在文件驻留在文件系统中时才有效。因此,对于您的情况,我认为您应该使用带有输入流的方法。

编辑: 在这里您可以使用 ClassPathResource 找到另一个答案 https://stackoverflow.com/a/44412189/7634201

关于java - 使用类路径在 java 中加载 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732585/

相关文章:

csv - 从Grails应用程序的 Controller 访问本地驱动器中的数据

java - 未找到 Freemarker 模板

java - Spring Data Neo4j存储库调用init方法失败

javascript - 无法打开与同一 SockJS 端点的多个连接

python - 我有一个 SAP 生成的文件,其中包含许多列和一些不需要的行。我应该如何直接读入 Pandas?

perl - 当只需要字段的子集时,分割长行的高性能方法是什么

java - ObjectMapper ConvertValue 错误 java.util.ArrayList[0]->java.util.LinkedHashMap ["id"]

java - 自定义 JSP 页面

c# - 如何在c#中转换java枚举

java - 以编程方式从 Eclipse 捕获编译器错误