質問です。
入力ファイルをチェックして、正常分と異常分に振り分ける
プログラムを作ろうとしています。
1レコード毎に振り分けるのなら簡単なのですが、自分が作ろうとしているのは、
連続した複数レコード単位にチェックして、その中で1レコードでも異常なら、
そのまとまったレコードを全て異常分に出力するという仕様になっていて、
どのように実装するか悩んでいます。

最初は、配列を使おうと思ったのですが、レコードの件数は不定で、
何万件もある場合もあるので、汎用性がないということでボツにしました。
そこで次に考えたのは、チェック結果が確定するまで、一時的に作業用の
出力ファイルに溜め込んでいって、判定が確定したら、作業用のファイルを
一旦クローズして、再度入力モードでオープン&リードし、EOFまでそのまま
正常分か異常分に出力し、その後作業用ファイルをクローズ&再度出力モードで
オープンし、次の連続レコードを溜め込む・・・というのを繰り返すという方法です。

このように、1つのファイルのオープン&クローズを何度も行うやり方っていうのは
どうなんでしょうか?
一つのプログラムでやるとなると、これぐらいしか思いつかないのですが、
もっと賢いやり方はありますか?