前提
ファイルを読み込んで、上書きして終了するプログラムを作成しています。
実現したいこと
読み込んだファイルを置換後、全てを上書きしたいのですが、読み込んだファイルと書き込むファイルを同じにすることができません。
java初心者のため、細かく解説していただけると有り難いです。
よろしくお願いします。
該当のソースコード
java
1import java.io.*; 2 3public class Test{ 4 5 public static void main(String[] args){ 6 try{ 7 BufferedReader file = new BufferedReader(new FileReader("c:\\output\\input.txt")); 8 FileWriter fileWriter = new FileWriter("c:\\output\\input.txt"); 9 BufferedWriter buffWriter = new BufferedWriter(fileWriter); 10 PrintWriter printWriter = new PrintWriter(buffWriter); 11 12 String line; 13 while((line = file.readLine()) != null){ 14 15 // 置換処理 16 if(line.contains("?")){ 17 line = line.replaceAll("?", " "); 18 19 // ファイルへ書き込み 20 printWriter.write(line); 21 printWriter.flush(); 22 printWriter.close(); 23 } 24 25 } catch(FileNotFoundException e) { 26 e.printStackTrace(); 27 }catch(IOException ie){ 28 e.printStackTrace(); 29 } 30 } 31}
試したこと
読み込みと書き込みファイルのパスを同じにすると、上書きされてテキストの内容が削除されてしまいます。
ソース自体は、動くため、修正方法がわかりません。
回答3件
あなたの回答
tips
プレビュー