FieldSet

在 Spring Batch 中使用平面檔案時,無論是輸入還是輸出,最重要的類別之一是 FieldSet。許多架構和程式庫都包含用於協助您從檔案讀取的抽象概念,但它們通常會傳回 StringString 物件的陣列。這實際上只完成了一半。FieldSet 是 Spring Batch 的抽象概念,用於啟用從檔案資源繫結欄位。它允許開發人員以與處理資料庫輸入非常相似的方式處理檔案輸入。FieldSet 在概念上類似於 JDBC ResultSetFieldSet 只需要一個引數: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 的最大優勢在於它提供了平面檔案輸入的一致性剖析。每個批次工作不會以可能意想不到的方式進行不同的剖析,而是在處理格式例外造成的錯誤或進行簡單的資料轉換時,它可以保持一致。