Как известно, все программы Java автоматически импортируют пакет java.iang. Этот пакет определяет класс с именем system, инкапсулирующий некоторые аспекты исполнительной среды Java. Например, используя некоторые из его методов, можно получить текущее время и параметры настройки различных свойств, связанных с системой. Класс system содержит также три предопределенные поточные переменные in, out и err. Эти поля объявлены в system со спецификаторами public и static. Это означает, что они могут использоваться любой частью программы, и причем без ссылки на конкретный system-объект.
Объект System.out называют потоком стандартного вывода. По умолчанию с ним связана консоль. На объект system.in ссылаются как на стандартный ввод, который по умолчанию связан с клавиатурой. К объекту System.err обращаются как к стандартному потоку ошибок, который по умолчанию также связан с консолью. Однако эти потоки могут быть переназначены на любое совместимое устройство ввода/вывода.
System, in — это объект типа InputStream; System.out и System.err — объекты типа Printstream. Это байтовые потоки, хотя они обычно используются, чтобы читать и записывать символы с консоли и на консоль. Однако их можно упаковать в символьные потоки, если нужно.
В предыдущих примерах использовался объект system.out. Аналогичным образом можно использовать и System.err.