平文件
批量数据交换最常用的机制之一一直是平面文件。不像XML,它有一个关于其结构定义的公认标准(XSD),任何读取平面文件的人都必须提前清楚文件的确切结构。总体而言,所有平面文件可分为两种类型:定界文件和固定长度文件。定界文件是指字段通过定界符(如逗号)分隔的文件。而固定长度文件的字段则具有固定的长度。
小节摘要
📄️ 字段集(FieldSet)
在Spring Batch中处理平面文件时,无论是用于输入还是输出,最重要的类之一是 FieldSet。许多架构和库都包含帮助你从文件中读取内容的抽象,但它们通常返回一个字符串或字符串对象数组。这实际上只完成了任务的一半。FieldSet 是Spring Batch提供的用于绑定文件资源中字段的抽象。它允许开发人员以与处理数据库输入相同的方式处理文件输入。FieldSet 在概念上类似于JDBC 的 ResultSet。FieldSet 仅需要一个参数:一个字符串类型的令牌数组。此外,你还可以选择配置字段名称,这样就可以像使用 ResultSet 一样,通过索引或名称访问字段,如下例所示:
📄️ FlatFileItemReader
平文件是指任何包含最多二维(表格)数据的文件。在 Spring Batch 框架中,读取平文件由 FlatFileItemReader 类提供支持,该类提供了读取和解析平文件的基本功能。FlatFileItemReader 的两个最重要的必需依赖项是 Resource 和 LineMapper。LineMapper 接口将在下一节中详细探讨。resource 属性表示一个 Spring Core Resource。有关如何创建此类类型 Bean 的文档可以在 Spring Framework 第 5 章 Resources 中找到。因此,本指南不会深入介绍创建 Resource 对象的细节,仅展示以下简单示例
📄️ FlatFileItemWriter
将数据写入平面文件与从文件中读取数据面临相同的问题和挑战。一个步骤必须能够以事务方式写入 Either delimited 或固定长度格式的文件。