Ответ 1
Если вы посмотрите в источнике для класса System
, вы можете увидеть следующие типы:
public final static PrintStream out = null;
public final static PrintStream err = null;
public final static InputStream in = null;
то есть. stdin и stderr имеют тип PrintStream
, а stdin - InputStream
.
Естественно, мы должны получить к ним доступ через System.out.println()
и подобные операции.
В отношении InputStream
/OutputStream
, который вы указали в своем вопросе, PrintStream
extends FilterOutputStream
, который расширяет OutputStream
. Основной целью PrintStream
является добавление полезных функций стиля print()
, println()
и т.д.