Реализуй логику метода getAllDataFromInputStream. Он должен вернуть StringWriter, содержащий все данные из переданного потока.
Возвращаемый объект ни при каких условиях не должен быть null.
Метод main не участвует в тестировании.
Читаем из потока
- 14
Недоступна
Комментарии (74)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
BlackGrizzli Team
1 февраля, 12:06
Когда читал задание, сразу вспомнил про паттерн NullObject
Хотя можно было куда проще ))) 0
racb
9 января, 09:13
Я что-то не так делаю может? Крайние 3 темы прохожу почти все задачи только через подсказку....иногда оказывается не хватало мелочи иногда вообще другое решение предлагается
+1
Bingo Boom
2 января, 13:48
всегда забываю, что валик не понимает метод readAllBytes()? не используйте его
+1
Anonymous #3036451
16 августа 2022, 14:25
Не уверен что читать в буфер фиксированного размера хорошая идея. В стандартной кодировке UTF-8 могут быть одно-, двух-, трех- и даже четырех-байтовые символы.
Есть вероятность что символ "порвет" посередине.
Корректное решение вижу таким. Считываем весь файл в ByteArrayOutputStream, после чего преобразуем массив байт в строку и записываем в StringWriter.
+1
Erik
29 ноября 2022, 02:04
Можно просто весь файл читать строками
+1
Dolivo Serg
19 июля 2022, 08:59
reader.lines().forEach(writer::write);
+2
Дмитрий
27 июня 2022, 10:52
9 попыток Карл 9 ... а всё из-за проверки на null!!! Это достойно песни!
0
SoSedExpert
7 февраля 2022, 11:10
Как уже много раз писали до этого, задание некорректно.
Даже если без проверки на null не может быть ситуаций, когда метод вернёт nullб валидатор не пропустит.
Напимали бы уже, что метод не должен бросать исключений если входящий параметр == null.
P.S. Ну, и по традиции readAllBytes() использовать нельзя)
+3
PaiMei in J# Grand Master в Eagles' Claw
13 октября 2021, 14:51
Пффф, а есть объяснение для чего нужно писать условие проверки
if (is == null) {
return stringWriter;
}
Мы ведь в любом случае будем его возвращать, т.е. в конце метода все равно будет эта заветная строчка, так в чем здесь соль или, как говорится, КАКАВА причина использования блока if?🙄
StringWriter writer = new StringWriter();
byte[] bytes = new byte[1024];
int i;
while ((i = is.read(bytes)) != -1) {
writer.write(new String(bytes).trim());
}
return writer;
+1
Bulkin
24 октября 2021, 18:32
если не проверять на null - У тебя NullPointerException в строке is.read(bytes) выбросится, если написать в мейне:
0
PaiMei in J# Grand Master в Eagles' Claw
25 октября 2021, 12:36
так тогда NullPointerException будет выброшен раньше, еще до входа в метод, так как аргументом null передается
0
Andrey
12 мая 2022, 10:49
Не верьте седой бороде ПэйМэя (комментарий выше) - он не прав, протестите 🙂
+1
PaiMei in J# Grand Master в Eagles' Claw
13 октября 2021, 14:23
Вот это прям хорошо)![]()

0
Дмитрий
27 июня 2022, 10:17
Я остаюсь
0
GBRTANK WARBOT
30 сентября 2021, 18:33
Засунул код в try {} catch () {}, на случай если входной поток null, файл который читает input strem не существует и тд. В комментариях кстати пишут, что валидатор валит тестом на null, т.е. можно просто null поддержать if-om
, как у Дмитрий Яковенко ниже. 0