Почему не записывает текст в файл 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();
}
}