InputStream и OutputStream - Как различить неоднозначность - PullRequest
0 голосов
/ 11 мая 2018

Мне кажется, что InputStream и OutputStream являются неоднозначными именами для ввода / вывода.

InputStream можно рассматривать как "для ввода в поток", а OutputStream можетследует понимать как «получить вывод из потока».

В конце концов, мы читаем из «входного» потока, но разве вы не должны читать из «вывода»?

Чтобыло ли обоснование выбора этих двух имен и как можно запомнить поток ввода-вывода, не путая одно с другим?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Потоки названы не для того, как вы используете их внутри своего кода, а для того, что они выполняют .InputStream выполняет чтение ввода из-за пределов вашей программы (консоли, файла и т. Д.), Тогда как OutputStream выполняет запись вывода в другое место (опять же,консоль, файл и т. д.).Ваш Java-код является всего лишь посредником в этом сценарии: чтобы использовать входные данные, вы должны прочитать их из потока, а для получения выходных данных сначала нужно что-то записать в поток.

Проблема с именованием заключается только в том, что в проектируемых потоках всегда есть что-то, что входит, а что-то выходит - вы всегда можете читать и писать в / с любым потоком.Все, что вам нужно помнить, это то, что они названы для более важной задачи , которую они выполняют: взаимодействуя с чем-то за пределами вашего кода.

0 голосов
/ 11 мая 2018

Думайте о вашей программе / коде как Actor .

  • Когда Actor хочет что-то прочитать, он ищет дескриптор для InputStream, причинаэто этот поток, который обеспечит вход.И, следовательно, когда вы читаете из него.
  • Когда Actor хочет что-то записать, он ищет дескриптор для OutputStream и затем начинает запись в дескриптор, который сделает все остальное.Точно так же ты пишешь ему.

Я надеюсь, что это ответ.Я просто визуализирую свой код как классический объект Stick Diagram Actor, а InputStream и OutputStream - как объекты, с которыми вы взаимодействуете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...