Java利用Univocity解析CSV文件

18 篇文章 1 订阅

Univocity

Univocity是一个开源的Java项目.针对CSV、TSV定宽文本文件的解析,它以简洁的API开发接口提供了丰富而强大的功能.和其他解析库有所不同,Univocity以高性能,可扩展为出发点,设计了一套自有架构.基于这套架构,开发者可以构建出新的文件解析器.

加载Univocity的依赖:
<!-- https://mvnrepository.com/artifact/com.univocity/univocity-parsers -->
<dependency>
    <groupId>com.univocity</groupId>
    <artifactId>univocity-parsers</artifactId>
    <version>2.9.1</version>
</dependency>

CSV文件

CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
下属案例默认字符集均为UTF-8字符集,代入其他字符集的CSV文件运行结果会出现乱码.

利用Java调用Univocity的例子,代码如下:
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;

public class Main {

    public static void main(String[] args) {
        String file_address="";//CSV文件地址
        try
        {
            CsvParserSettings parserSettings=new CsvParserSettings();
            parserSettings.setLineSeparatorDetectionEnabled(true);//借助于配置对象自动侦测输入中包含何种行分隔离符序列

            RowListProcessor rowListProcessor=new RowListProcessor();//用来将每个解析的行存储在列表中
            parserSettings.setRowProcessor(rowListProcessor);
            parserSettings.setHeaderExtractionEnabled(true);//把第一个解析行看作文件中每列的标题
            CsvParser parser=new CsvParser(parserSettings);
            parser.parse(new File(file_address));

            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)));
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
生成CSV文件的基本步骤如下: 1. 创建CSV文件 可以使用Java的File类创建文件,也可以使用第三方库如OpenCSVUniVocity等。 使用Java的File类创建文件的示例代码如下: ```java File csvFile = new File("file.csv"); ``` 2. 写入CSV文件 可以使用Java的BufferedWriter类将数据写入CSV文件,也可以使用第三方库如OpenCSVUniVocity等。 使用Java的BufferedWriter类写入CSV文件的示例代码如下: ```java try (BufferedWriter writer = new BufferedWriter(new FileWriter(csvFile))) { // 写入CSV文件头部 writer.write("列1,列2,列3\n"); // 写入CSV文件数据 writer.write("行1列1,行1列2,行1列3\n"); writer.write("行2列1,行2列2,行2列3\n"); writer.write("行3列1,行3列2,行3列3\n"); } catch (IOException e) { e.printStackTrace(); } ``` 在写入CSV文件数据时,需要注意以下几点: - CSV文件的每一行都以换行符(\n)结束。 - CSV文件的每一行都由若干个以逗号(,)分隔的数据组成。 - 如果数据中包含逗号或换行符,需要使用双引号(")将其括起来。如果数据中包含双引号,需要使用两个双引号("")表示一个双引号。 以上示例代码中,写入的CSV文件数据如下: ``` 列1,列2,列3 行1列1,行1列2,行1列3 行2列1,行2列2,行2列3 行3列1,行3列2,行3列3 ``` 3. 关闭CSV文件 完成CSV文件的写入后,需要关闭BufferedWriter对象释放资源。 使用try-with-resources语句可以自动关闭BufferedWriter对象,示例代码如上所示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛者无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值