Вопрос Java душный вопрос

Начинающий
Статус
Оффлайн
Регистрация
6 Окт 2023
Сообщения
8
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Почему println()/print() класса PrintStream (реализация OutputStream aka байтовый поток) записывает символы/строки в консоль посимвольно,
А read() класса BufferedInputStream (реализация InputStream aka байтовый поток) возвращает символы/строки побайтово?
У меня нет вопросов к BufferedInputStream, у меня вопросы к PrintStream (либо я че-то не понял)
Ведь если ты не хочешь, чтобы read() возвращал строки по байтам, ты используешь InputStreamReader (реализация Reader aka символьный поток), который делает тоже самое, что и BufferedInputStream, но посимвольно
А какой смысл тогда от голого OutputSteamWriter (реализация Writer aka символьный поток), если PrintStream делает по сути тоже самое?
Если бы методы PrintStream записывали символы по байтам, как и подобает классу, реализующий байтовый поток, я бы понял логику, но мало того что в этом нет логики, так теперь я не вижу логики в классе OutputSteamWriter
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
326
Поинты[?]
12K
Почему println()/print() класса PrintStream (реализация OutputStream aka байтовый поток) записывает символы/строки в консоль посимвольно,
А read() класса BufferedInputStream (реализация InputStream aka байтовый поток) возвращает символы/строки побайтово?
У меня нет вопросов к BufferedInputStream, у меня вопросы к PrintStream (либо я че-то не понял)
Ведь если ты не хочешь, чтобы read() возвращал строки по байтам, ты используешь InputStreamReader (реализация Reader aka символьный поток), который делает тоже самое, что и BufferedInputStream, но посимвольно
А какой смысл тогда от голого OutputSteamWriter (реализация Writer aka символьный поток), если PrintStream делает по сути тоже самое?
Если бы методы PrintStream записывали символы по байтам, как и подобает классу, реализующий байтовый поток, я бы понял логику, но мало того что в этом нет логики, так теперь я не вижу логики в классе OutputSteamWriter
Fck java , but... Возможно причина в том что тебе дают юзерфрендли обёртку которая предоставляет удобные методы для вывода формат. текста?Плюс к этому тебе не приходится ебаться с тем как интрепретировать те или инные байты, всё делается за тебя.


P.S Создатели столь крутого языка "Java" прекрасно понимали что целевая аудитория - раздел "Создание читов для Minecraft" и чтобы облегчить ваше бытие, дали вам высокий уровень абстракции :roflanBuldiga:
 
Начинающий
Статус
Оффлайн
Регистрация
6 Окт 2023
Сообщения
8
Реакции[?]
0
Поинты[?]
0
Причина другая, я догадался
println(read()) возвращает в консоль 1 элемент из массива
println() предоставляет консоли весь массив

Если консоль вместо байтового массива получает другой объект, он преобразуется в строку
Если консоль получает байтовый массив, данные этого массива преобразуются в символы и потом преобразуются в строку
Поэтому все сходится
 
Сверху Снизу