CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后,你对该图集的状况就可以了如指掌。 每行相当于一条记录,是用“,”分割字段的纯文本数据库文件
在 java中解析 来吧上代码吧
依赖
maven
<dependency>
<groupId>de.siegmar</groupId>
<artifactId>fastcsv</artifactId>
<version>1.0.3</version>
</dependency>
gradle
implementation "de.siegmar:fastcsv:1.0.3"
File file = new File("/*/*/*.csv");
CsvReader csvReader = new CsvReader();
csvReader.setContainsHeader(true);
CsvContainer csv = csvReader.read(file, StandardCharsets.UTF_8);
for (CsvRow row : csv.getRows()) {
String str=row.getField("test");
也可以通过MultipartFile接受不过还要转成 File
public void add(MultipartFile file) throws IOException {
if (ObjectUtils.isEmpty(file)){
return;
CsvReader csvReader = new CsvReader();
csvReader.setContainsHeader(true);
CsvContainer csv = csvReader.read(multipartFile2File(file), StandardCharsets.UTF_8);
for (CsvRow row : csv.getRows()) {
String str=row.getField("test");
* multipartFile转File
public static File multipartFile2File(MultipartFile multipartFile){
File file = null;
if (multipartFile != null){
try {
file=File.createTempFile("tmp", null);
multipartFile.transferTo(file);
System.gc();
file.deleteOnExit();
}catch (Exception e){
e.printStackTrace();
log.warn("multipartFile转File发生异常:"+e);
return file;
也可以用流读取 不需要依赖
public void add() throws IOException {
File file=new File("/*/*/*.csv");
file.setReadable(true);
file.setWritable(true);
InputStreamReader isr = null;
BufferedReader br = null;
try {
isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
br = new BufferedReader(isr);
} catch (Exception e) {
e.printStackTrace();
String line = "";
ArrayList<String> records = new ArrayList<>();
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
records.add(line);
System.out.println("csv表格读取行数:" + records.size());
} catch (IOException e) {
e.printStackTrace();
模块介绍 ?
fast-csv是一款开源软件包,主要用来处理csv格式的文本数据,就是一种有固定格式的文本文件。fast-csv是一个流式的推式解析器,即收到一段数据就解析一段数据,不需要收完全部的数据才开始解析。推式就是每一行,每一个字段都全部都解析出来,不论你最后用了还是不用。
如何使用?
在pom.xml中添加依赖信息:
<dependency>
<groupId>de.siegmar</groupId>
java导出下载csv文件说明工具类代码Controller代码
今天看到需求里面有个需要将数据导成csv文件的格式,这里记录下自己的实现过程。直接上后端代码,这里用的springboot框架实现。
工具类代码
工具类代码下面最下面有一个main方法可直接执行导出功能,你可以用这个测试数据看看效果。
package com.etone.project.utils;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logg
1、大数据量情况下导出csv格式文件,一般使用多线程分批读取到内存中,这样可以避免OOM情况,同时也可以使用消息队列方式,这样也可以实现数据削峰读取,本文主要是记录核心的导出CSV功能,架构没有在此文中实现。2、csv导出核心代码。
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.7</version>
</dependency>
<!-- 上传工具依赖 -->
<dependency>