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
の最大の利点は、フラットファイル入力の一貫した解析を提供することです。予期せぬ方法で各バッチジョブが異なる方法で解析するのではなく、フォーマット例外に起因するエラーを処理するとき、または単純なデータ変換を行うときの両方で一貫性があります。