1

BeanIOフラットファイルをのリストに変換するために使用していますObject。次のコード スニペットを使用します。

while ((MyCustomRecord obj = (MyCustomRecord) in.read()) != null) {
         System.out.println(obj);
}

ただし、これに関する問題は、一部のレコードの解析中に例外が発生した場合、レコードの処理がすぐに停止することです。そのような例外を抑制し、次のレコードの処理を続行したい。

これを行う方法はありますか?

私が試すことができることの1つは、ブロックin.readの本体に入れてwhileラップすることtry/catchですが、どうすれば終了状態を検出できますか。レコードの終わりを伝える方法はないようです。

ありがとうジテンドラ

4

1 に答える 1

3

BeanIO リファレンス ドキュメントで回答が見つかりました。私は以前それを逃した。

これは、カスタム ErrorHandler を に登録することで実行できますBeanReader

in.setErrorHandler(new BeanReaderErrorHandlerSupport() {
            public void invalidRecord(InvalidRecordException ex) throws Exception {
                System.out.println(ex.getLocalizedMessage());
            } 
});

http://beanio.org/docs/reference/index.html#StreamValidation

于 2012-04-19T23:20:37.877 に答える