• ベストアンサー

ファイル内容の修正、行削除について

はじめまして、 今Javaでテキストファイルの中身を書きかえるという処理を行っています。追加書きこみや、修正などはなんとかできると思うのですが、1行削除するというのはどのようなやりかたをすればいいのでしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

こんにちは Javaに限った話しでは無く、一般的な話しです。 aaa.txtのn行目を削除したい場合 aaa.txtをReadOnlyでオープンする。 xxx.tmpをWriteでオープンする。 n-1行までをaaa.txtから読み込み、xxx.tmpに書き出す。 n行はaaa.txtから読み込むが、xxx.tmpには書き出さない。 n+1行以降ははaaa.txtから読み込み、xxx.tmpに書き出す。 aaa.txt、xxx.tmpをクローズする。 aaa.txtを削除してxxx.tmpをaaa.txtにリネームする。 といった流れです。 aaa.txtが共有ファイルであれば、xxx.tmpがある場合は、aaa.txtを読み込まないと言うようなプログラミングをすれば良いと思います。

mincowski
質問者

お礼

回答ありがとうございます。 その方法は頭にもあったのですが、ファイルの中身が増えるほど処理が遅くなるのではと思い、ためらっていました。やはり1行だけ削除と言う処理はないのでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

> ファイルの中身が増えるほど処理が遅くなるのではと思い、ためらっていました。やはり1行だけ削除と言う処理はないのでしょうか? 確かに、自分でこのようなプログラムを作ると、「重そうだなぁ」と思ってしまいます。しかし、たとえ「1行削除」を行うためのコマンドのようなものがあらかじめ用意されていたとしても、結局はそのコマンドの処理の中で「重そう」な処理が実行されるのですから、どちらにしても同じことです。 どんな方法をとったとしても、ファイルを読み取って行数をカウントしなければ、1行削除を行うことはできないのですから。

すると、全ての回答が全文表示されます。
  • aloop
  • ベストアンサー率23% (10/43)
回答No.1

こんにちは 「改行コードから改行コードまで削除」してみてはいかがでしょう。

mincowski
質問者

補足

回答ありがとうございます。 なるほど、それは良いアイデアなのですが、 削除には具体的に何を使うのが望ましいのでしょうか? 今考え付くのはStringクラスを使い文字を「null」に変換するぐらいなのですが、ファイルレベルでの削除も可能なのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A