继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Java轻松读取CSV文件

霜花似雪
关注TA
已关注
手记 163
粉丝 1.5万
获赞 8507

一. CSV文件简介

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

CSV 是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。


二.Java读取CSV文件 pom.xml配置

<!-- https://mvnrepository.com/artifact/com.univocity/univocity-parsers -->
<dependency>
    <groupId>com.univocity</groupId>
    <artifactId>univocity-parsers</artifactId>
    <version>2.9.1</version>
</dependency>


三.Java代码实现读取

import com.univocity.parsers.common.processor.RowListProcessor;
import com.univocity.parsers.csv.CsvParser;
import com.univocity.parsers.csv.CsvParserSettings;

import java.io.File;
import java.util.Arrays;
import java.util.List;

/**
 * @ClassName UnivocityReadCsv
 * @Desc 使用Univocity解析CSV文件
 * @Author diandian
 * @Date 2022/1/4 21:53
 **/
public class UnivocityReadCsv {

    public List<String[]> parseCSV(String fileName){
        //创建一个配置选项,用来提供多种配置选项
        CsvParserSettings parserSettings = new CsvParserSettings();
        //打开解析器的自动检测功能,让它自动检测输入中包含的分隔符
        parserSettings.setLineSeparatorDetectionEnabled(true);

        //创建RowListProcessor对象,用来把每个解析的行存储在列表中
        RowListProcessor rowListProcessor = new RowListProcessor();
        parserSettings.setProcessor(rowListProcessor);  //配置解析器
        //待解析的CSV文件包含标题头,把第一个解析行看作文件中每个列的标题
        parserSettings.setHeaderExtractionEnabled(true);
        parserSettings.setLineSeparatorDetectionEnabled(true);

        //创建CsvParser对象,用于解析文件
        CsvParser parser = new CsvParser(parserSettings);
        parser.parse(new File(fileName));

        //如果解析中包含标题,用于获取标题
        String[] headers = rowListProcessor.getHeaders();
        //获取行值,并遍历打印
        List<String[]> rows = rowListProcessor.getRows();
        /*for(int i = 0; i < rows.size(); i++){
            System.out.println(Arrays.asList(rows.get(i)));
        }*/
        return rows;
    }

    public static void main(String[] args) {
        UnivocityReadCsv readCsv = new UnivocityReadCsv();
        List<String[]> list = readCsv.parseCSV("doc/nba.csv");
        for(int i = 0; i < list.size(); i++){
            System.out.println(Arrays.asList(list.get(i)));
        }
    }

}


http://img3.sycdn.imooc.com/61f2741400018bbb12940927.jpg


数据读取之后,就可以做其他处理!


最后感谢诸君的支持,对你有帮助的话,请点赞支持一下!

在此,祝福大家2022年春节快乐!



打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP