Java上传csv文件踩坑记
前言
最近在做交通优化分析工具的产品时,有一个需求是用户上传一份包含路段信息的csv文件,后端需要解析csv的文件内容并将信息插入数据库中。这是一个常规的操作,也不复杂,但是在实现的过程中却踩到了一个utf-8 BOM的坑,随手记录一下。
实现方式
完整的实现方式如下:
- 在spring中通过
MultipartFile file这个对象来接受前端传过来的文件 - 获取
file对象的InputStream输入流 - 将上一步的输入流和定义好的DTO对象传给opencsv的
CsvToBeanBuilder方法,CsvToBeanBuilder方法会自动解析输入流中的内容并生成对应的DTO List - 最后根据业务需求,生成相应的DO对象存入数据库
前面有坑
csv文件样例:
path_id,path_name
1,文一路
2,文二路
DTO定义:
@Data
publ