代码
package util;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* @author litao.z
* Created by on 2020-04-09 3:02 下午
*/
public class CsvUtils {
private static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
/**
* 读取csv文件内容
* @param inputStream
* @return 返回csv文件中的数据
* @throws Exception
*/
public static List<String[]> read(InputStream inputStream) throws Exception {
//1. 存储csv文件中的内容
List<String[]> csvList = new ArrayList<>();
//2. 创建CsvReader
CsvReader reader = new CsvReader(inputStream, ',', DEFAULT_CHARSET);
//3. 跳过表头
reader.readHeaders();
//4.逐行读入除表头的数据
while (reader.readRecord()) {
csvList.add(reader.getValues());
}
//5. 释放资源
reader.close();
return csvList;
}
/**
* 数据写入csv文件
* @param records 待写入csv文件的内容列表
* @param outputStream 指定输出流
*
* @throws Exception
*/
public static void write(List<String[]> records, OutputStream outputStream) throws Exception {
CsvWriter wr = new CsvWriter(outputStream, ',', DEFAULT_CHARSET);
for (int i = 0; i < records.size(); i++) {
wr.writeRecord(records.get(i));
}
wr.close();
}
}
maven依赖
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>