java 读写csv文件工具类

依赖的jar包

	
		net.sourceforge.javacsv
		javacsv
		2.0
	

代码块

package com.example.demo.test;

import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

/**
 * @description: 读写csv文件工具类
 *
 * @create: 2020/01/20 17:36
 **/
public class CsvUtil {

    public static void main(String[] args) throws Exception{
        File file = new File("E:\\temp\\1.csv");
        InputStream inputStream = new FileInputStream(file);
        List list = read(inputStream,"GB2312");
        write(list,"E:\\temp\\2.csv");
    }

    /**
     * 读取csv文件内容
     * @param inputStream
     * @param code csv文件的编码,如utf8,,gbk
     *
     * @return 返回csv文件中的数据
     * @throws Exception
     */
    public static List read(InputStream inputStream, String code) throws Exception{
        //1. 存储csv文件中的内容
        List csvList = new ArrayList();

        //2. 创建CsvReader
        CsvReader reader = new CsvReader(inputStream, ',', Charset.forName(code));

        //3. 跳过表头,如果需要表头的话,不要写这句
        reader.readHeaders();

        //4.逐行读入除表头的数据
        while(reader.readRecord()){
            csvList.add(reader.getValues());
        }

        //5. 释放资源
        reader.close();
        return csvList;
    }

    /**
     * 数据写入csv文件
     * @param list UTF-8编码写入csv文件的内容
     * @param filePath 写入的csv文件的指定路劲
     *
     * @throws Exception
     */
    public static void write(List list, String filePath) throws Exception{
        CsvWriter wr = new CsvWriter(filePath, ',', Charset.forName("UTF-8"));
        for (int i = 0; i < list.size(); i++) {
            wr.writeRecord(list.get(i));
        }
        wr.close();
    }
}

运行结果:
java 读写csv文件工具类_第1张图片

你可能感兴趣的:(java)