Мне нужно прочитать данные из одного файла и записать его в другом файле в обратном порядке и в нижнем регистре.Почему файл не заполняется, если я не закрываю поток?
BufferedReader r = new BufferedReader(new FileReader("file.txt"));
List<String> s = new LinkedList<>();
String temp;
while ((temp = r.readLine()) != null)
s.add(temp);
r.close();
BufferedWriter w = new BufferedWriter(new FileWriter("file1.txt"));
ListIterator<String> li = s.listIterator(s.size());
while (li.hasPrevious()) {
w.write(li.previous().toLowerCase() + "\n");
}
// w.close();
Если я прокомментирую последнюю строку, файл останется пустым; иначе файл будет заполнен должным образом. Не могли бы вы объяснить мне, почему это происходит?
Вызов 'close' также очистит поток, который необходим. См. [Doc] (https://docs.oracle.com/javase/8/docs/api/java/io/BufferedWriter.html#close--) –
Это то, что вы запрашиваете явно, когда вы запрашиваете * буферизированный * писатель. – Holger