java处理csv文件上传示例详解
更新时间:2020年12月31日 15:56 点击:1457
前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。
ReadCsvUtil工具类
package com.hanfengyeqiao.gjb.utils; import java.io.*; import java.util.*; /** * csv工具类 */ public class ReadCsvUtil { private static final String FIX="\uFEFF"; /** * 获取csv文件内容 * @return 对象list */ public static List<Map<String,Object>> getResource(byte[] bate) throws IOException { List<Map<String,Object>> allString = new ArrayList(); Map<String,Object> callLogInfo ; List<String> list = new ArrayList(); // 获取文件内容 list = getSource(bate); // 获取文件表头 List<String> title = Arrays.asList(list.get(0).split(",")); String customerName = title.get(0).trim(); String customerNo = title.get(1).trim(); // 头部会带有"\uFEFF"值 if(customerName.startsWith(FIX)){ customerName = customerName.replace(FIX, ""); } callLogInfo = new HashMap(); callLogInfo.put("param1",customerName); callLogInfo.put("param2",customerNo); allString.add(callLogInfo); list.remove(0); // 循环内容 for(int i = 0; i<list.size();i++){ List<String> content = Arrays.asList(list.get(i).split(",")); // 当没有添加额外参数时 if(content!=null){ callLogInfo = new HashMap(); callLogInfo.put("param1",content.get(0)); callLogInfo.put("param2",content.get(1)); allString.add(callLogInfo); } } return allString; } /** * 读文件数据 */ public static List<String> getSource(byte[] bate) throws IOException { BufferedReader br = null; ByteArrayInputStream fis=null; InputStreamReader isr = null; try { fis = new ByteArrayInputStream(bate); //指定以UTF-8编码读入 isr = new InputStreamReader(fis,"UTF-8"); br = new BufferedReader(isr); } catch (Exception e) { e.printStackTrace(); } String line; String everyLine ; List<String> allString = new ArrayList<>(); try { //读取到的内容给line变量 while ((line = br.readLine()) != null){ everyLine = line; allString.add(everyLine); } } catch (IOException e) { e.printStackTrace(); }finally { if(fis != null){ fis.close(); } if(isr != null){ isr.close(); } } return allString; } }
控制器(这里用的springboot):
package com.hanfengyeqiao.gjb.controller.admin; import com.hanfengyeqiao.gjb.utils.ReadCsvUtil; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @Api(tags = "") @RestController @RequestMapping("/admin") public class AdminCertController { @RequestMapping("/test/upload") public void upload(HttpServletRequest request, MultipartFile upfile) throws Exception { if (request.getMethod().equals("POST")) { byte[] bate =upfile.getBytes(); List<Map<String,Object>> list=ReadCsvUtil.getResource(bate); if(list!=null){ for(Map<String,Object> m:list){ System.out.println("param1:"+m.get("param1")+";param2:"+m.get("param2")+"。"); } } } } }
html代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <form action="http://localhost:8088/admin/test/upload" method="post" enctype="multipart/form-data"> 上传:<input type="file" name="upfile"/> <input type="submit" value="提交"/> </form> </body> <script type="text/javascript"> </script> </html>
示例文件
运行结果
在处理csv文件的时候容易出现编码上的问题,小伙伴们写代码的时候要多注意一下!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
上一篇: java微信公众号支付示例详解
下一篇: RocetMQ搭建步骤与问题解决之道
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
pandas pd.read_csv()函数中parse_dates()参数的用法说明
这篇文章主要介绍了pandas pd.read_csv()函数中parse_dates()参数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-05- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
- 本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- 这篇文章主要介绍了Java开发实现人机猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-03
- 这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29