>>340
> どうにも非効率な気がしてなりません。

何が非効率だと感じてるの?(メモリ?時間?)
もっとメモリを使わないようにプログラムを書き換えたいってなら、
ファイルを一旦全部メモリ(String のインスタンス)に溜め込むのをやめて、
1行読んでは書き(あるいは削除したい行なら書かず)を繰り返すってのはどうでしょう。

既にそういうことをやっているのか、やっていないのかも、
あなたの文章からはわからないわけですが、(勝手に想像して書いてみました)。