2016-11-29 13 views
2

固定ヘッダー/列を持たない多くのCSVファイルを処理していますが、file1.csvに10列、file2.csvに50列を渡すことができます。春バッチ - FlatFileReaderで動的列を使用することは可能ですか?

私は、私が持っている列の数を知ることができません、私は各ファイルの種類の特定のジョブを作成することはできません、私の入力はブラックボックスになります:CSVの束列数は10から無限になります。

これらのCSVを自動インポートするにはSpring Batchを使用したいので、可能かどうかを知りたいですか?私は、プロセッサと、データをライターに送り返す前にPOJOにシリアル化する必要があるという事実のために、固定された数のカラムを取得しなければならないことを知っています。

プロセッサはアレイをシリアル化できますか? 1つの単純なオブジェクトを送信することのほかに、オブジェクトの配列を取得できますか?私の仕事の最後には、オブジェクトの配列の配列がありますか?

あなたはどう思いますか?

おかげ

答えて

2

独自のLineTokenizerの実装を作成します。は、事前定義された数の列を必要とします。独自のものを作成する場合は、必要に応じて動的にすることができます。 LineTokenizerの詳細については、こちらのドキュメントを参照してください。http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/file/transform/LineTokenizer.html

+0

これはいいですね。そのインタフェースを見てみましょう。 – TheCyberXP

+0

'DelimitedLineTokenizer'を使うと、[setStrict(false)](https://docs.spring.io/spring-batch/trunk/apidocs/)を使うことができます。このようにして、行のトークンの数は、定義された列の数と一致する必要はありません。 – badjr

関連する問題