springboot读resource下的csv文件
首先,有一个注意点就是,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文件相关推荐
- python读取c盘中的csv文件-python读取当前目录下的CSV文件数据
在处理数据的时候,经常会碰到CSV类型的文件,下面将介绍如何读取当前目录下的CSV文件,步骤如下 1.获取当前目录所有的CSV文件名称: #创建一个空列表,存储当前目录下的CSV文件全称 file_n ...
- springboot下载resource下的静态资源,下载excel文件损坏
在resource下新建文件目录[template] 启动之后查看编译结果 编写下载模板方法 public void downLoadTemplate(HttpServletResponse resp ...
- springboot读取resource下json文件出现空指针异常
1.pom包依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</ ...
- Springboot 获取 resource 下的文件夹路径的坑
现在有个需求是需要利用模板文件生成HTML 或者 PDF 文件,然后由于HTML 模板文件里面包含图片和字体,然后我就在resource 文件夹下新建了一个文件夹,然后又分类,也就是 resource ...
- java读取resource下的json文件
在java-resource下新建一个paperTree.json的文件保存数据.采用Resource resource = new ClassPathResource读取方式.JSON.parseO ...
- java读取resource下的模板文件
需要获取resources/template路径下的文件,读取后再写入,返回给前端 本地代码获取方式: String templateFilePath = Thread.currentThread() ...
- vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI
展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...
- Springboot读取.csv文件并转化为JSON对象
有时候我们需要读取.csv文件并将其中的数据处理成json对象以便后续处理,在这里整理了简单的处理流程. 1. 代码实现 1)引入依赖 <dependency><groupId> ...
- 用python对CSV文件中的数据进行统计分析
在目前的数据分析领域,常用的分析工具有excel.python等,这几乎已经成为共识,而面对excel和python,谁更适合数据分析,也确实一直被大家讨论. Excel VS Python exce ...
最新文章
- JavaScript中实现私有属性的写类方式(2)
- javascript时间处理
- 静态链接库编写与使用(VC6)
- 社区首款 OAM 可视化平台发布!关注点分离、用户友好、上手难度低
- oracle一行拆多行函数,Oracle 实现多行转换成一行 使用oracle 10g collect函数
- 操作篇 bgp协议了解与学习
- Codeforces Round #628 (Div. 2) E. Ehab‘s REAL Number Theory Problem 巧妙的质因子建图
- quartz.net 执行后台任务
- 生成器案例,#采集日志
- Asp.net2.0里访问Web.config的Section的示例
- 飞龙的计算机公开课推荐
- CUDA(*.cu)程序与C(*.c)源程序混合编译
- 食品安全事件曝光严重,SPC软件的应用刻不容缓
- Adapter模式 适配器模式
- 大学计算机模拟2014网络应用,2014全校大学计算机基础模拟考试.doc
- TwinCAT 3 基础——安装
- Spring Security技术栈学习笔记(十)开发记住我功能
- 基于单片机的函数信号波形发生器系统设计(#0428)
- 矩阵连乘积问题--动态规划
- linux常用格式化命令,linux格式化命令【使用方案】