私はSpring Batchの初心者であり、この状況を解決するための助けをいただければ幸いです.MultiResourceItemReaderでいくつかのファイルを読み取り、いくつかのマーシャリング作業を行い、ItemProcessorで文字列を受け取ってaを返すMap<String, List<String>>
ので、私の問題はItemWriter Map のキーを反復処理し、それぞれについて、そのキーに関連付けられた値を含む新しいファイルを生成する必要があります。誰かがファイルを作成するために正しい方向に私を指摘できますか?
最大行数のファイルを生成する必要があるため、MultiResourceItemWriter も使用しています。
前もって感謝します
質問する
2911 次
1 に答える
1
まあ、最終的に解決策が得られました。私はそれについてあまり興奮していませんが、それは機能しており、あまり時間がありません。そのため、MultiResourceItemWriter を拡張し、「書き込み」メソッドを再定義して、マップの要素を処理し、自分でファイル。誰かがそれを必要とする場合に備えて、ここにあります。
@Override
public void write(List items) throws Exception {
for (Object o : items) {
//do some processing here
writeFile(anotherObject);
}
private void writeFile (AnotherObject anotherObject) throws IOException {
File file = new File("name.xml");
boolean restarted = file.exists();
FileUtils.setUpOutputFile(file, restarted, true, true);
StringBuffer sb = new StringBuffer();
sb.append(xStream.toXML(anotherObject));
FileOutputStream os = new FileOutputStream(file, true);
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os, Charset.forName("UTF-8")));
bufferedWriter.write(sb.toString());
bufferedWriter.close();
}
それだけです。私が知らないより良いオプションがあると信じたいのですが、今のところこれが私の解決策です。実装を強化する方法を誰かが知っている場合は、知りたいです。
于 2012-06-29T20:39:23.737 に答える