JOptionPane.showMessageDialog(null, "Проверьте путь к файлу: " + e, text, JOptionPane.ERROR_MESSAGE);
}
}
}
Результат работы программы в нормальных условиях:
Структура выходного файла result.txt:
Результат работы программы в исключительной ситуации (исходный файл не найден):
К сожалению, объект класса FileInputStream позволяет осуществлять только посимвольное чтение из файла. Во многих задачах необходимо считывать из файла не отдельные символы, а строки. В этом случае файловый поток необходимо буферизировать.
Буфер – это часть оперативной памяти, в которой накапливается информация. Когда буфер заполнен, его содержимое быстро переносится процессором, буфер очищается и снова заполняется информацией.
Буферизированный поток позволяет считывать данные не посимвольно, а построчно. Он создается на основе символьного потока, который, в свою очередь создается на основе байтового потока с помощью классов FileInputStream и FileOutputStream. На их основе с помощью классов InputStreamReader и OutputStreamReader создаются символьные потоки. И, наконец, буферизированные потоки создаются на основе классов BufferedReader и BufferedWriter.
Пример: считать из предыдущего текстового файла ishod.txt информацию, записанную в нем, и переписать ее в файл result.txt, перевернув каждую строку. Перевернутые строки также вывести на консоль.