Crocus CSV 读取器:高效处理 CSV 文件的 Java 实用工具

本文介绍了 Crocus CSV 读取器,一个易于使用的 Java 工具,支持读取单个或多个 CSV 文件,管理记录和字段,合并文件,并添加监听器。文章详细说明了使用方法和构建系统配置。

Crocus - CSV 读取器

由 Shaaf’s blog 发布,2008 年 10 月 3 日,星期五

易于使用、即开即用的 CSV 文件读取实用工具。将一个或多个文件读取到 RecordManager 中,快速访问文件,分割为字段和记录。合并多个 CSV 文件为一个。支持 CSV 文件监听器。

下载此处

组织结构

CSV 文件按以下方式分解:

  • CSVField 包含一组字符
  • CSVRecord 包含一组 CSVFields
  • CSVFile 包含一组记录

使用方法

读取单个 CSV 文件到 RecordManager

1
2
3
4
// 创建单个文件接口
CSVSingleFileInterface fileInterface = new CSVSingleFileInterface("/media/data/dev/workspace/crocus/testData/drupal-sample.csv", CSVConstants.COMMA);
// 调用 read 方法返回 CSVRecordManager,即在内存中
AbstractCSVRecordManager manager = fileInterface.read();

读取多个文件到一个 RecordManager

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// 指定一个 FileSet
AbstractCSVFileSet fileSet = new CSVFileSet();

// 向集合中添加文件
fileSet.addFile("testData/drupal-sample.csv");
fileSet.addFile("testData/countries.csv");

// 将 fileSet 添加到读取接口
CSVFileSetInterface fileSetInterface = new CSVFileSetInterface(fileSet);

// 读取返回一个管理器,与单个文件情况相同
AbstractCSVRecordManager manager = fileSetInterface.read();

此功能尚未完成,但提供了一个预览。

您现在可以为记录的 Pre、Post 和 On Add 指定监听器。

设置监听器

要添加监听器,只需实现 RecordListener 类:

1
2
3
4
5
6
7
8
9
// 获取 Record Manager
AbstractCSVRecordManager manager = fileInterface.getRecordManager();

// 向管理器添加监听器
manager.addRecordListener(this);
// 实现事件监听方法以监听 RecordEvent
public void eventPerformed(RecordEvent recordEvent) {
    System.out.println(recordEvent.toString());
}

构建系统

构建脚本支持以下目标: Build: init, clean, compile, jar, javadoc, tests

在创建编译、jar、测试时包括和排除文件。

文件详情(路径和描述)

预规则

CROCUS_DEV = 主目录,即从此处开始的示例将使用此变量描述详细信息。

您需要设置 CROCUS_DEV 环境变量才能运行构建过程。 您还需要设置 ANT_HOME 以使用 ant。我使用 Ant 1.6.5 进行构建。

  • $CROCUS_DEV/src 保存源代码,即 java 文件
  • $CROCUS_DEV/build 携带所有构建相关文件
  • $CROCUS_DEV/build/build.xml 主构建脚本
  • $CROCUS_DEV/build/include.xml 编译时包含 java 文件的模式
  • $CROCUS_DEV/build/exclude.xml 编译时排除 java 文件的模式
  • $CROCUS_DEV/build/tests_include.xml 编译时包含测试 java 文件的模式
  • $CROCUS_DEV/build/tests_exclude.xml 编译时排除测试 java 文件的模式
  • $CROCUS_DEV/build/tools 构建过程中使用的工具
  • $CROCUS_DEV/build/jar_buildfiles 您可以简单地指定一个带有通配符匹配的 txt 文件,并将其命名为 yourjar.jar,以便构建系统识别 “yourjar.jar” 将是此 jar 的名称,其中应包含此 txt(yourjar.jar)中指定的包
  • $CROCUS_DEV/build/bin 保存 uniz 脚本和 bat 文件,供开发人员运行构建脚本,大致如下:
    • Windows: %CROCUS_DEV%/build all
    • Linux: $CROCUS_DEV/build.sh all
  • $CROCUS_DEV/build_results 保存所有构建结果
  • $CROCUS_DEV/build_results/docs 创建的 java 文档
  • $CROCUS_DEV/build_results/classes 创建的类
  • $CROCUS_DEV/build_results/tests 单元测试结果
  • $CROCUS_DEV/build_results/jars 系统创建的 jar
  • $CROCUS_DEV/jars/ 是与 jar 相关信息目录
  • $CROCUS_DEV/jars/manifests 保存 $CROCUS_DEV/build/jar_buildfiles 的清单
    • 通常应使用:Manifest.jarName
  • $CROCUS_DEV/jars/original3rdparty 保存任何可能用于构建系统类路径的第三方供应商 jar
  • $CROCUS_DEV/testData 逻辑上应保存所有测试数据,无论其形式如何。目前我放置了一些 csv 文件(制表符分隔、逗号分隔、分号分隔)。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计