В чем разница между потоком и читателем в Java? - PullRequest
15 голосов
/ 11 марта 2010

Сегодня я получил этот вопрос, на который, я думаю, я ответил очень плохо. Я сказал, что поток - это данные, которые передаются, а читатель - это метод, при котором мы читаем статические данные. Я знаю, что это ужасный ответ, поэтому, пожалуйста, предоставьте мне четкое различие и определения между этими двумя примерами на Java.

Спасибо.

Ответы [ 4 ]

17 голосов
/ 11 марта 2010

InputStream ориентирован на байты. Читатель ориентирован на персонажей.

Javadocs - ваш друг, объясняющий разницу. Считыватель , InputStream

11 голосов
/ 11 марта 2010

Как уже говорили другие, варианты использования для каждого немного различаются (хотя их часто можно использовать взаимозаменяемо)

Поскольку читатели предназначены для чтения символов, они лучше подходят, когда вы имеете дело с вводом текстового характера (или данными, представленными в виде символов). Я говорю лучше, потому что читатели (в контексте типичного использования) - это, по сути, потоки с методами, которые легко облегчают чтение ввода символов.

9 голосов
/ 11 марта 2010

Поток предназначен для чтения байтов, Reader для чтения символов. Один символ может занимать один байт или более, в зависимости от набора символов.

6 голосов
/ 09 февраля 2015

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

С другой стороны Reader/Writer - это классы, основанные на символах. Эти классы читают или пишут один символ за раз из или в поток. Эти классы расширяются либо java.io.Reader (все классы ввода символов), либо java.io.Writer (все классы вывода символов). Эти классы полезны, если вы имеете дело с текстовым файлом или другим текстовым потоком. Эти классы также Buffered и Non-Buffered.

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