`FieldSet`
在 Spring Batch 中處理平面檔案時,無論是作為輸入還是輸出,最重要的類之一是 FieldSet
。許多架構和庫包含用於幫助您從檔案讀取的抽象,但它們通常返回 String
或 String
物件的陣列。這僅僅完成了一半的工作。FieldSet
是 Spring Batch 的抽象,用於實現從檔案資源繫結欄位。它允許開發者以處理資料庫輸入的方式來處理檔案輸入。FieldSet
在概念上類似於 JDBC ResultSet
。FieldSet
只需要一個引數:一個 String
陣列的 token。此外,您還可以配置欄位的名稱,以便可以像 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
最大的優勢在於它提供了平面檔案輸入的統一解析。這樣一來,就不會出現每個批處理作業以潛在的非預期方式進行不同解析的情況,而是在處理格式異常導致的錯誤時或進行簡單資料轉換時保持一致。