Apache commons.csv 1.9.0 读写csv文件

一个需求: 读取写csv文件
这个csv文件特点, 每个元素都有 双引号 , 元素之间的分隔符是 英文逗号

要求: 从csv文件读取到的数据以一个 String 的"双重"列表返回
同样的: 由一个String的"双重"列表写入csv文件.

工具如下可以 直接 使用.

package arg.example.utils;
import org.apache.commons.csv.*;

import java.io.*;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * @author zjzstart
 * @create 2022-08-12-10:22
 */
public class CSVUtil {

    public static void writeCSVFile(String writeFilePath, List<List<String>> contentArrayList) throws Exception{
        String fileName = writeFilePath;
        File file = new File(fileName);
        if(file.exists())
            file.delete();
        PrintWriter printWriter = new PrintWriter(file);
        CSVPrinter print = CSVFormat.DEFAULT.builder().setDelimiter(',').setQuoteMode(QuoteMode.ALL).setQuote('"').build().print(printWriter);
        print.printRecords(contentArrayList);
        print.flush();
        print.close();

    }

    public static List<List<String>> readCSVFile(String filePath) throws Exception{

        FileReader fileReader=new FileReader(filePath);

        CSVParser parse = CSVFormat.DEFAULT.builder().setDelimiter(',').setQuoteMode(QuoteMode.ALL).setQuote('"').build().parse(fileReader);
        List<List<String>> data = new LinkedList<>();
        for (CSVRecord record : parse.getRecords()) {
            List<String> list = new ArrayList<>();
            for (String s : record) {
//                String[] split = s.split("\"");
                list.add(s);
            }
            data.add(list);
        }
        fileReader.close();
        parse.close();
        return data;
    }



}


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值