JavaRush /Java блог /Архив info.javarush /Уровень 32. Вопросы.
Globus51
35 уровень

Уровень 32. Вопросы.

Статья из группы Архив info.javarush
Уровень 32 3 лекция: StringReader, StringWriter Код в лекции для примера "Чтение из объекта reader и запись в объект writer" Выдает ошибку: Exception in thread "main" java.lang.NullPointerException at java.lang.StringBuilder.(StringBuilder.java:112) По всей видимости это происходит при 4-й итерации цикла, когда считывать из br собственно уже нечего и считывается null , который при попытке записи в StringBuilder и вызывает ошибку. В чём тут дело, почему пример не работает как надо? public static void main (String[] args) throws Exception { //эту строку должен будет прочитать Reader String test = "Hi!\n My name is Richard\n I'm a photographer\n"; //заворачиваем строку в StringReader StringReader reader = new StringReader(test); //Создаем объект StringWriter StringWriter writer = new StringWriter(); //переписываем строки из Reader во Writer, предварительно развернув их executor(reader, writer); //получаем текст, который был записан во Writer String result = writer.toString(); //выводем полученный из Writer’а текст на экран System.out.println("Результат: "+result); } public static void executor(Reader reader, Writer writer) throws Exception { BufferedReader br = new BufferedReader(reader); while (br.ready()) { //читаем строку из Reader’а String line = br.readLine(); //разворачиваем строку задом наперед StringBuilder sb = new StringBuilder(line); String newLine = sb.reverse().toString(); //пишем строку в Writer writer.write(newLine); } }
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Globus51 Уровень 35
7 октября 2017
Так что там, код в лекции правильный или нет?
Почему никто не отвечает, обучение стоит…
Globus51 Уровень 35
23 сентября 2017
Только вот это в комментах:
br.ready() не видит берега в данном случае (Виндовз) и цикл получается бесконечный, печатая строки null )
lichMax Уровень 40
23 сентября 2017
я отладка что говорит?