Заменить строки в файле другой строкой

У меня есть текстовый файл со следующим содержанием:

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");
}
}

Когда я запускаю код, все строки появляются на одной строке.

Ответы на вопрос(4)

Ваш ответ на вопрос