Предопределенные потоки

Как вы знаете, все Java-программы автоматически импортируют пакет java.lang. В этом пакете определен класс System, инкапсулирующий некоторые аспекты среды времени выполнения. Например, используя некоторые из его методов, можно получить текущее время и настройки различных параметров, ассоциированных с системой. System также содержит три предопределенных потоковых переменных: in, out и err. Эти переменные объявлены как public, static и final в классе System. Это значит, что они могут быть использованы любой другой частью вашей программы без обращения к специфическому объекту System.

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

System.in — это объект типа InputStream, System.out и System.err — объекты типа PrintStream. Это байтовые потоки, хотя обычно они используются для чтения и записи символов с консоли и на консоль. Как вы увидите, при необходимости их можно поместить в оболочки символьных потоков.

В примерах, приведенных в предыдущих главах, использовался поток System.out. Вы можете почти таким же образом применять System.err. Как будет показано в следующем разделе, использование System.in немного сложнее.