package com.example.springbootwebfluxdemo.utils;
import com.opencsv.*;
import com.opencsv.enums.CSVReaderNullFieldIndicator;
import com.opencsv.processor.RowProcessor;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
public class OpenCsvTest {
/**
* csv解析示例方法
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
InputStreamReader in = new InputStreamReader(Files.newInputStream(Paths.get("D:\\白冰 - 副本.csv")), Charset.forName("GBK"));
CSVParserBuilder parserBuilder = new CSVParserBuilder()
.withSeparator(ICSVParser.DEFAULT_SEPARATOR)//分隔符
.withQuoteChar(ICSVParser.DEFAULT_QUOTE_CHARACTER)//引用符
.withEscapeChar(ICSVParser.DEFAULT_ESCAPE_CHARACTER)//转义符
.withStrictQuotes(false)
.withIgnoreLeadingWhiteSpace(true)
.withIgnoreQuotations(false)
.withFieldAsNull(CSVReaderNullFieldIndicator.BOTH)
.withErrorLocale(Locale.getDefault());
ICSVParser csvParser = parserBuilder.build();
CSVReaderBuilder readerBuilder = new CSVReaderBuilder(in)
.withCSVParser(csvParser)
.withSkipLines(0)
.withRowProcessor(new CsvRowProcessor());
CSVReader csvReader = readerBuilder.build();
List<String[]> list = csvReader.readAll();
}
/**
* 数据处理类,示例代码
*/
private static class CsvRowProcessor implements RowProcessor {
@Override
public String processColumnItem(String column) {
if(column == null){
return "";
}
return column;
}
@Override
public void processRow(String[] row) {
for(int i = 0; i < row.length; i++){
String item = row[i];
item = this.processColumnItem(item);
row[i] = item;
}
System.out.println(Arrays.toString(row));
}
}
}
使用openCsv解析csv文件
最新推荐文章于 2024-05-26 15:44:40 发布