首先,有一个注意点就是,springboot项目最后打成一个jar包,tomcat容器内嵌在jar包里,我们从代码里去读resource下的文件的方式和传统的以web容器目录形式部署的服务器肯定是不一样的。

<!--      读写csv--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.5</version></dependency>

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import java.io.*;
import java.util.*;/*** csv文件读写工具类** @author by YangLD* @date 2018/7/10*/
public class CsvUtils {private static final Logger logger = LoggerFactory.getLogger("CsvUtils.class");/*** 读取csv文件  (一次性读取文件不宜过大)** @param filePath 文件路径 pinyin/xxx.csv* @param headers  csv列头* @return CSVRecord 列表**/public static Map<String,String[]> readCSV(String filePath, String[] headers){//创建CSVFormatCSVFormat format = CSVFormat.DEFAULT.withHeader(headers);Map<String,String[]> resultMap = new HashMap<>();InputStreamReader inputStreamReader = null;CSVParser parser = null;try {ClassPathResource classPathResource = new ClassPathResource(filePath);//获取文件流InputStream fileStream = classPathResource.getInputStream();inputStreamReader = new InputStreamReader(fileStream,"UTF-8");//创建CSVParser对象parser = new CSVParser(inputStreamReader, format);int rowIndex = 0;for (CSVRecord record : parser) {if(rowIndex > 0){resultMap.put(record.get(0),record.get(1).split(","));}rowIndex++;}parser.close();inputStreamReader.close();} catch (Exception e) {logger.error("CsvUtils.readCSV,读取csv文件,message:{}", e.getMessage(), e);}finally {closeStream(inputStreamReader, parser);}return resultMap;}private static void closeStream(InputStreamReader inputStreamReader, CSVParser parser) {if(inputStreamReader != null){try {inputStreamReader.close();} catch (IOException e) {logger.error("文件打开异常",e.getMessage());}}if(parser != null){try {parser.close();} catch (IOException e) {logger.error("文件打开异常",e.getMessage());}}}}

springboot读resource下的csv文件相关推荐

  1. python读取c盘中的csv文件-python读取当前目录下的CSV文件数据

    在处理数据的时候,经常会碰到CSV类型的文件,下面将介绍如何读取当前目录下的CSV文件,步骤如下 1.获取当前目录所有的CSV文件名称: #创建一个空列表,存储当前目录下的CSV文件全称 file_n ...

  2. springboot下载resource下的静态资源,下载excel文件损坏

    在resource下新建文件目录[template] 启动之后查看编译结果 编写下载模板方法 public void downLoadTemplate(HttpServletResponse resp ...

  3. springboot读取resource下json文件出现空指针异常

    1.pom包依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</ ...

  4. Springboot 获取 resource 下的文件夹路径的坑

    现在有个需求是需要利用模板文件生成HTML 或者 PDF 文件,然后由于HTML 模板文件里面包含图片和字体,然后我就在resource 文件夹下新建了一个文件夹,然后又分类,也就是 resource ...

  5. java读取resource下的json文件

    在java-resource下新建一个paperTree.json的文件保存数据.采用Resource resource = new ClassPathResource读取方式.JSON.parseO ...

  6. java读取resource下的模板文件

    需要获取resources/template路径下的文件,读取后再写入,返回给前端 本地代码获取方式: String templateFilePath = Thread.currentThread() ...

  7. vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI

    展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...

  8. Springboot读取.csv文件并转化为JSON对象

    有时候我们需要读取.csv文件并将其中的数据处理成json对象以便后续处理,在这里整理了简单的处理流程. 1. 代码实现 1)引入依赖 <dependency><groupId> ...

  9. 用python对CSV文件中的数据进行统计分析

    在目前的数据分析领域,常用的分析工具有excel.python等,这几乎已经成为共识,而面对excel和python,谁更适合数据分析,也确实一直被大家讨论. Excel VS Python exce ...

最新文章

  1. JavaScript中实现私有属性的写类方式(2)
  2. javascript时间处理
  3. 静态链接库编写与使用(VC6)
  4. 社区首款 OAM 可视化平台发布!关注点分离、用户友好、上手难度低
  5. oracle一行拆多行函数,Oracle 实现多行转换成一行 使用oracle 10g collect函数
  6. 操作篇 bgp协议了解与学习
  7. Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图
  8. quartz.net 执行后台任务
  9. 生成器案例,#采集日志
  10. Asp.net2.0里访问Web.config的Section的示例
  11. 飞龙的计算机公开课推荐
  12. CUDA(*.cu)程序与C(*.c)源程序混合编译
  13. 食品安全事件曝光严重,SPC软件的应用刻不容缓
  14. Adapter模式 适配器模式
  15. 大学计算机模拟2014网络应用,2014全校大学计算机基础模拟考试.doc
  16. TwinCAT 3 基础——安装
  17. Spring Security技术栈学习笔记(十)开发记住我功能
  18. 基于单片机的函数信号波形发生器系统设计(#0428)
  19. 矩阵连乘积问题--动态规划
  20. linux常用格式化命令,linux格式化命令【使用方案】

热门文章

  1. 如何打造微产业生态链
  2. 回归创作打卡获奖名单
  3. 【HTML】原生js实现的图书馆管理系统
  4. 【开源】SixChat WebApp 仿微信朋友圈 PHP OR JSP
  5. ISO 11898 CAN FD数据传输格式标准(初级)
  6. 在北上深杭做Java开发如何拿到三万月薪,需要什么程度的技术?
  7. 基于博弈论的出租车系统效率优化
  8. 快手春节红包pk则么玩 快手拔河拼牛气活动规则介绍
  9. Photozoom2020汉化免费下载图片放大软件使用教程
  10. 波澜哥utau音源下载