ファイルベースでバッチ処理やるならインプレースでファイルを更新するという考え方は基本的にしない
出力は入力とは別のファイルに書き出して、完了後に入力ファイルが不要なら削除する
それがCOBOL時代からの伝統的なやり方で、元来ファイルってのはそういう使い方に最適化されてるんだよ