• 締切済み

ファイルの特定の位置への文字列の追加

FilWriter fw = new FileWriter(file , true); BufferedWriter bw = new BufferedWriter(fw); bw.write("AAA"); bw.newLine(); 例えばこんなかんじで書いた場合、変数fileが参照するFileクラスのオブジェクトが表現するファイルの文末に AAA という文字列が追加されると思うのですが、 この文字列をファイルの中のある特定の位置に挿入するといった場合 どのような処理が可能でしょうか? RandamAccessFileクラスを使って、 正規表現で位置を確認して、 バイト単位で場所を指定して、 挿入する。 とかしか方法は無いのでしょうか? 何かアドバイスありましたらよろしくお願いいたします。

みんなの回答

  • neko_noko
  • ベストアンサー率45% (146/319)
回答No.1

とりあえずテキストファイルとします。 ・Readerでファイルを読み込み、いったん変数に格納 ・「特定の位置」というのを検索、見つかったら挿入 ・読み込んだデータをWriterでいったん別ファイルに書き出す ・元ファイルをリネーム、書き出したファイルを元ファイル名に変更 エンコードを間違えなければこれでできると思います。 データが多ければReaderとWriterを両方開いておき、 1行読む→検索(見つかったら挿入)→書き出し、としてもOK。 元ファイルを削除しても構いませんが、バックアップとして残しておいた方が いざというとき助かると思います。

akirakore
質問者

お礼

ご回答ありがとうございます。 自分自身、IOに関して実際にあまり触ったことがないので、 勉強しながら試行錯誤しているところです。 ご回答の件、もう少し自分で理解が深まったら、 実際に試させていただこうと思っております。 ありがとうございました。

関連するQ&A