轻松掌握Crocus CSV读取工具:高效处理CSV文件的技术指南

本文详细介绍Crocus CSV读取工具的技术实现,包括单文件/多文件读取机制、记录监听器配置,以及基于Ant的完整构建系统。通过具体代码示例展示CSV字段/记录管理架构,提供可立即投入使用的Java工具类解决方案。

Crocus - CSV 读取器

易于使用的即用型CSV文件读取工具。可将单个或多个文件读取到RecordManager中,快速访问文件并分割为字段和记录。支持合并多个CSV文件,提供CSV文件监听器功能。

下载地址

组织结构:

CSV文件按以下结构划分:

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

使用方法:

读取单个CSV文件到RecordManager

1
2
3
4
5
6
7
// 创建单文件接口
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
10
// 获取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 设计