В Java 11 я мог бы инициализировать InputStream следующим образом:
InputStream inputStream = InputStream.nullInputStream();
Но я не могу понять потенциальный вариант использования InputStream.nullInputStream или аналогичного API для OutputStream то есть OutputStream.nullOutputStream.
Из API Javadocs я мог понять, что это
Возвращает новый
InputStreamкоторый не читает байтов. Возвращенный поток изначально открыт. Поток закрывается путем вызова метода close().Последующие вызовы
close()имеют никакого эффекта. Пока поток открыт, методыavailable(),read(),read(byte[]),...skip(long)иtransferTo()ведут себя так, как будто достигнут конец потока.
Далее я ознакомился с подробными примечаниями к выпуску, в которых говорится:
В разное время я хотел бы использовать методы, которые требуют в качестве параметра целевого объекта OutputStream/Writer для отправки вывода, но хотели бы выполнить эти методы без вывода сообщений для их других эффектов.
Это соответствует способности в Unix перенаправлять вывод команды в /dev/null или в DOS для добавления вывода команды в NUL.
Тем не менее, я не понимаю, что это за методы в заявлении, как указано как.... выполнять эти методы молча для их других эффектов. (обвините меня в отсутствии практического применения API)
Может ли кто-нибудь помочь мне понять, в чем полезность такого потока ввода или вывода с помощью примера, если это возможно?
Редактировать: Одной из похожих реализаций, которую я мог бы найти при дальнейшем просмотре, является NullInputStream Apache-commons, который намного лучше оправдывает вариант использования тестирования.