次の内容のテキスト ファイルがあります。
public class MyC{
public void MyMethod()
{
System.out.println("My method has been accessed");
System.out.println("hi");
}
}
配列 num[]= {2,3,4} があります。この配列の文字列に完全に置き換えられる行番号が含まれています
String[] VALUES = new String[] {"AB","BC","CD"};
つまり、ライン 2 は AB に、ライン 3 は BD に、ライン 4 は CD に置き換えられます。
num[]配列にない行は、変更とともに新しいファイルに書き込む必要があります。
これまでのところ、いくつかの種類のループを試しましたが、まだ機能しません。
public class ReadFileandReplace {
/**
* @param args
*/
public static void main(String[] args) {
try {
int num[] = {3,4,5};
String[] VALUES = new String[] {"AB","BC","CD"};
int l = num.length;
FileInputStream fs= new FileInputStream("C:\\Users\\Antish\\Desktop\\Test_File.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
LineNumberReader reader = new LineNumberReader(br);
FileWriter writer1 = new FileWriter("C:\\Users\\Antish\\Desktop\\Test_File1.txt");
String line;
int count =0;
line = br.readLine();
count++;
while(line!=null){
System.out.println(count+": "+line);
line = br.readLine();
count++;
int i=0;
if(count==num[i]){
int j=0;;
System.out.println(count);
String newtext = line.replace(line, VALUES[j]) + System.lineSeparator();
j++;
writer1.write(newtext);
}
i++;
writer1.append(line);
}
writer1.close();
}
catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
予想される出力は次のようになります。
public class MyC{
AB
BC
CD
Sys.out.println("hi");
}
}
コードを実行すると、すべての行が同じ行に表示されます。