FieldSet

Spring Batch でフラットファイルを操作する場合、入力用か出力用かにかかわらず、最も重要なクラスの 1 つは FieldSet です。多くのアーキテクチャとライブラリには、ファイルからの読み取りを支援する抽象化が含まれていますが、通常は String または String オブジェクトの配列を返します。これは本当に途中であなたを得るだけです。FieldSet は、ファイルリソースのフィールドをバインドできるようにするための Spring Batch の抽象化です。開発者は、データベース入力を操作するのとほぼ同じ方法でファイル入力を操作できます。FieldSet は、概念的に JDBC ResultSet に似ています。FieldSet には、String トークンの配列という 1 つの引数のみが必要です。オプションで、次の例に示すように、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);

Date、long、BigDecimal など、FieldSet インターフェースにはさらに多くのオプションがあります。FieldSet の最大の利点は、フラットファイル入力の一貫した解析を提供することです。予期せぬ方法で各バッチジョブが異なる方法で解析するのではなく、フォーマット例外に起因するエラーを処理するとき、または単純なデータ変換を行うときの両方で一貫性があります。