Заменить строки в файле другой строкой
У меня есть текстовый файл со следующим содержанием:
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 ""ДО НАШЕЙ ЭРЫ","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");
}
}
Когда я запускаю код, все строки появляются на одной строке.