このJavaコードはコンパイルされます。しかし、私がこのプログラムを実行したとき、それは本当に長い時間続いて、何の結果も得ていませんでした。そして最後にrunofoutspaceと言って、無限ループに陥ったと思います。あなたが実際にforループ内で、ArrayListのサイズを増加しているファイルを読み込んで作成しようとすると無限ループになる
for (int i=0; i<readFile.size();i++)
{
String n = readFile.get(i);
n = n.replaceAll(findWord,replaceWord);
readFile.add(i,n);
}
:で
import java.util.*;
import java.io.*;
public class Exercise3{
public static void main (String[] args){
File infile = new File(args[0]);
File outfile = new File("Ex3.txt");
try {
Scanner scan = new Scanner(infile);
ArrayList<String> readFile = new ArrayList<String>();
String findWord = args[1];
String replaceWord = args[2];
while(scan.hasNextLine())
{
readFile.add(scan.nextLine());
}
//System.out.println(readFile);
for (int i=0; i<readFile.size();i++)
{
String n = readFile.get(i);
n = n.replaceAll(findWord,replaceWord);
readFile.add(i,n);
}
PrintWriter output = new PrintWriter(outfile);
for (int i=0; i<readFile.size();i++)
{
output.println(readFile.get(i));
}
output.close();
scan.close();
}
catch (FileNotFoundException e){
System.err.println("file not found.");
}
}
}
入力の検索を停止する必要があることをプログラムがどのように認識していますか? –