FieldSet
在 Spring Batch 中使用平面文件时,无论用于输入还是输出,最重要的类之一是 FieldSet
。许多架构和库包含用于帮助您从文件读取的抽象,但它们通常返回一个 String
或一个 String
对象数组。这实际上只完成了一半的工作。FieldSet
是 Spring Batch 的抽象,用于启用从文件资源绑定字段。它允许开发人员以与处理数据库输入相同的方式处理文件输入。FieldSet
在概念上类似于 JDBC ResultSet
。FieldSet
只需要一个参数:一个 String
标记数组。可选地,您还可以配置字段的名称,以便可以按索引或名称访问字段,就像 ResultSet
一样,如下例所示
String[] tokens = new String[]{"foo", "1", "true"};
FieldSet fs = new DefaultFieldSet(tokens);
String name = fs.readString(0);
int value = fs.readInt(1);
boolean booleanValue = fs.readBoolean(2);
FieldSet
接口提供了更多选项,例如 Date
、long、BigDecimal
等。FieldSet
最大的优势在于它提供了对扁平文件输入的一致解析。与每个批处理作业以潜在的意外方式进行不同解析相比,它可以保持一致,无论是在处理由格式异常引起的错误时,还是在进行简单数据转换时。