Почему не записывает текст в файл Java. Файл outputText создается, но он пустой. Помогите пожалуйста разобраться

public static void fileWriter (ArrayList list) { System.out.println("Введите адрес файла для записи");

        try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
        String outputFileName = reader.readLine();

             BufferedWriter writter = new BufferedWriter(new FileWriter(outputFileName));
                for (String value : list) {
                    writter.write(value + "\n");
                }
            }
             catch (IOException e) {
                e.printStackTrace();
            }
    }

Ответы (1 шт):

Автор решения: Alexey R.

Добавьте finally блок где закройте Ваш BufferedWriter. В таком случае Writer сбросит накопленные данные в файл.

public static void fileWriter (ArrayList<String> list)  {
   System.out.println("Введите адрес файла для записи");
   BufferedWriter writer = null;
   try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
      String outputFileName = reader.readLine();
      writer = new BufferedWriter(new FileWriter(outputFileName));
      for (String value : list) {
          writer.write(value + "\n");
      }
   }
   catch (IOException e) {
       e.printStackTrace();
   } finally {
       if (writer != null){
           writer.close();
       }
   }
}

Второй вариант:

public static void fileWriter (ArrayList<String> list)  {
   System.out.println("Введите адрес файла для записи");
   try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
      String outputFileName = reader.readLine();
      try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileName))){
         for (String value : list) {
          writter.write(value + "\n");
         }catch (IOException e) {
            e.printStackTrace();
         }
      }
   }
   catch (IOException e) {
       e.printStackTrace();
   }
}
→ Ссылка