Javaの読み込みと書き込みのファイルを同じにしたい

前提

ファイルを読み込んで、上書きして終了するプログラムを作成しています。

実現したいこと

読み込んだファイルを置換後、全てを上書きしたいのですが、読み込んだファイルと書き込むファイルを同じにすることができません。

java初心者のため、細かく解説していただけると有り難いです。
よろしくお願いします。

該当のソースコード

java

import java.io.*; public class Test{ public static void main(String[] args){ try{ BufferedReader file = new BufferedReader(new FileReader("c:\\output\\input.txt")); FileWriter fileWriter = new FileWriter("c:\\output\\input.txt"); BufferedWriter buffWriter = new BufferedWriter(fileWriter); PrintWriter printWriter = new PrintWriter(buffWriter); String line; while((line = file.readLine()) != null){ // 置換処理 if(line.contains("?")){ line = line.replaceAll("?", " "); // ファイルへ書き込み printWriter.write(line); printWriter.flush(); printWriter.close(); } } catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException ie){ e.printStackTrace(); } }}

試したこと

読み込みと書き込みファイルのパスを同じにすると、上書きされてテキストの内容が削除されてしまいます。
ソース自体は、動くため、修正方法がわかりません。

コメントを投稿

0 コメント