为了账号安全,请及时绑定邮箱和手机立即绑定

Java轻松读取CSV文件

标签:
Java

一. 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)));
        }
    }

}


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


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


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

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



点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消