Java教程

Java轻松读取CSV文件

本文主要是介绍Java轻松读取CSV文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一. 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年春节快乐!



这篇关于Java轻松读取CSV文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!