Spec-Zone.ru › OpenJDK 25

Класс Console

java.lang.Object
java.io.Console
Все реализуемые интерфейсы:
Flushable
public sealed class Console extends Object implements Flushable
Методы для доступа к символьному устройству консоли, если оно имеется, связанному с текущей виртуальной машиной Java.

Наличие консоли у виртуальной машины зависит от платформы, а также от способа запуска виртуальной машины. Если виртуальная машина запущена из интерактивной командной строки без перенаправления стандартных потоков ввода и вывода, то консоль будет доступна и обычно будет связана с клавиатурой и дисплеем, с которых была запущена виртуальная машина. Если виртуальная машина запускается автоматически, например планировщиком фоновых заданий, то у нее может не быть консоли.

Если у этой виртуальной машины есть консоль, она представлена единственным экземпляром этого класса, который можно получить, вызвав метод System.console(). Если устройство консоли недоступно, вызов этого метода вернет null.

Операции чтения и записи синхронизированы, чтобы гарантировать атомарное выполнение критических операций; поэтому вызовы методов readLine(), readPassword(), format(), printf(), а также операции чтения, форматирования и записи объектов, возвращаемых методами reader() и writer(), могут блокироваться в многопоточных сценариях.

Операции чтения и записи используют Charsetы, заданные соответственно методами stdin.encoding и stdout.encoding. Charset, используемый для операций записи, также можно получить с помощью метода charset(). Поскольку Console предназначена для интерактивного использования в терминале, эти наборы символов обычно совпадают.

Операции форматирования строк зависят от локали: для создания локализованных форматированных строк используется либо указанная Locale, либо default format Locale.

Вызов close() для объектов, возвращаемых методами reader() и writer(), не закроет базовый поток этих объектов.

Методы чтения из консоли возвращают null при достижении конца входного потока консоли, например при нажатии Control-D в Unix или Control-Z в Windows. Последующие операции чтения будут выполнены успешно, если позднее на устройстве ввода консоли будут введены дополнительные символы.

Если не указано иное, передача аргумента null любому методу этого класса приведет к выбрасыванию исключения NullPointerException.

Примечание по безопасности: если приложению необходимо прочитать пароль или другие защищенные данные, ему следует использовать readPassword() или readPassword(String, Object...) и вручную обнулить возвращенный массив символов после обработки, чтобы свести к минимуму время хранения конфиденциальных данных в памяти.

Console cons;
char[] passwd;
if ((cons = System.console()) != null &&
    (passwd = cons.readPassword("[%s]", "Password:")) != null) {
    ...
    java.util.Arrays.fill(passwd, ' ');
}
Начиная с:
1.6

Краткое описание методов

Модификатор и тип Метод Описание
Charset charset()
Возвращает объект Charset, используемый для операций записи в этой Console.
void flush()
Сбрасывает буфер консоли и принудительно немедленно записывает все буферизованные выходные данные.
Console format(String format, Object... args)
Записывает форматированную строку в выходной поток этой консоли, используя указанную строку формата и аргументы с default format locale.
Console format(Locale locale, String format, Object... args)
Записывает форматированную строку в выходной поток этой консоли, используя указанную строку формата и аргументы с указанной locale.
boolean isTerminal()
Возвращает true, если экземпляр Console является терминалом.
Console printf(String format, Object... args)
Удобный метод для записи форматированной строки в выходной поток этой консоли с использованием указанной строки формата и аргументов с default format locale.
Console printf(Locale locale, String format, Object... args)
Удобный метод для записи форматированной строки в выходной поток этой консоли с использованием указанной строки формата и аргументов с указанной locale.
Reader reader()
Получает единственный объект Reader, связанный с этой консолью.
String readLine()
Считывает одну строку текста из консоли.
String readLine(String format, Object... args)
Выводит форматированное приглашение с использованием default format locale, а затем считывает одну строку текста из консоли.
String readLine(Locale locale, String format, Object... args)
Выводит форматированное приглашение с использованием указанной locale, а затем считывает одну строку текста из консоли.
char[] readPassword()
Считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
char[] readPassword(String format, Object... args)
Выводит форматированное приглашение с использованием default format locale, а затем считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
char[] readPassword(Locale locale, String format, Object... args)
Выводит форматированное приглашение с использованием указанной locale, а затем считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
PrintWriter writer()
Получает единственный объект PrintWriter, связанный с этой консолью.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

writer

public PrintWriter writer()
Получает единственный объект PrintWriter, связанный с этой консолью.
Возвращает:
Объект printwriter, связанный с этой консолью

reader

public Reader reader()
Получает единственный объект Reader, связанный с этой консолью.

Этот метод предназначен для использования сложными приложениями, например объектом Scanner, который использует широкие возможности синтаксического анализа и сканирования, предоставляемые Scanner:

    Console con = System.console();
    if (con != null) {
        Scanner sc = new Scanner(con.reader());
        ...
    }

Для простых приложений, которым требуется только построчное чтение, используйте readLine(String, Object...).

Операции чтения блоками read(char[]), read(char[], int, int) и read(java.nio.CharBuffer) для возвращенного объекта не будут считывать символы за пределами текущей строки при каждом вызове, даже если в буфере назначения есть место для большего количества символов. Методы read объекта Reader могут блокироваться, если на устройстве ввода консоли не введен или не достигнут конец строки. Концом строки считается любой из следующих символов: перевод строки ('\n'), возврат каретки ('\r'), возврат каретки, за которым сразу следует перевод строки, или конец потока.

Возвращает:
Объект reader, связанный с этой консолью

format

public Console format(String format, Object... args)
Записывает форматированную строку в выходной поток этой консоли, используя указанную строку формата и аргументы с default format locale.
Параметры:
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Эта консоль
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.

format

public Console format(Locale locale, String format, Object... args)
Записывает форматированную строку в выходной поток этой консоли, используя указанную строку формата и аргументы с указанной locale.
Параметры:
locale — локаль, применяемая при форматировании. Если locale — это null, локализация не применяется.
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Эта консоль
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
Начиная с:
23

printf

public Console printf(String format, Object... args)
Удобный метод для записи форматированной строки в выходной поток этой консоли с использованием указанной строки формата и аргументов с default format locale.
Требования к реализации:
Это эквивалентно вызову format(format, args).
Параметры:
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Эта консоль
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.

printf

public Console printf(Locale locale, String format, Object... args)
Удобный метод для записи форматированной строки в выходной поток этой консоли с использованием указанной строки формата и аргументов с указанной locale.
Требования к реализации:
Это эквивалентно вызову format(locale, format, args).
Параметры:
locale — локаль, применяемая при форматировании. Если locale — это null, локализация не применяется.
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Эта консоль
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
Начиная с:
23

readLine

public String readLine(String format, Object... args)
Выводит форматированное приглашение с использованием default format locale, а затем считывает одну строку текста из консоли.
Параметры:
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Строка, содержащая считанную из консоли строку без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
IOError — если произошла ошибка ввода-вывода.

readLine

public String readLine(Locale locale, String format, Object... args)
Выводит форматированное приглашение с использованием указанной locale, а затем считывает одну строку текста из консоли.
Параметры:
locale — локаль, применяемая при форматировании. Если locale — это null, локализация не применяется.
format — строка формата, описанная в Format string syntax.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Строка, содержащая считанную из консоли строку без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
IOError — если произошла ошибка ввода-вывода.
Начиная с:
23

readLine

public String readLine()
Считывает одну строку текста из консоли.
Возвращает:
Строка, содержащая считанную из консоли строку без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IOError — если произошла ошибка ввода-вывода.

readPassword

public char[] readPassword(String format, Object... args)
Выводит форматированное приглашение с использованием default format locale, а затем считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
Параметры:
format — строка формата, описанная в Format string syntax, для текста приглашения.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Массив символов, содержащий считанный из консоли пароль или парольную фразу без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
IOError — если произошла ошибка ввода-вывода.

readPassword

public char[] readPassword(Locale locale, String format, Object... args)
Выводит форматированное приглашение с использованием указанной locale, а затем считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
Параметры:
locale — локаль, применяемая при форматировании. Если locale — это null, локализация не применяется.
format — строка формата, описанная в Format string syntax, для текста приглашения.
args — аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе равным нулю. Максимальное число аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от conversion.
Возвращает:
Массив символов, содержащий считанный из консоли пароль или парольную фразу без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IllegalFormatException — если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с переданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Details спецификации класса formatter.
IOError — если произошла ошибка ввода-вывода.
Начиная с:
23

readPassword

public char[] readPassword()
Считывает пароль или парольную фразу из консоли с отключенным отображением вводимых символов.
Возвращает:
Массив символов, содержащий считанный из консоли пароль или парольную фразу без символов завершения строки, или null, если достигнут конец потока.
Выбрасывает:
IOError — если произошла ошибка ввода-вывода.

flush

public void flush()
Сбрасывает буфер консоли и принудительно немедленно записывает все буферизованные выходные данные.
Определено в:
flush в интерфейсе Flushable

charset

public Charset charset()
Возвращает объект Charset, используемый для операций записи в этой Console.

Возвращенный набор символов используется для кодирования данных, отправляемых на устройство вывода (например, дисплей), и задается средой хоста или пользователем. По умолчанию используется набор символов на основе stdout.encoding; он не обязательно совпадает с набором символов по умолчанию, возвращаемым методом Charset.defaultCharset().

Возвращает:
объект Charset, используемый для операций записи в этой Console
Начиная с:
17

isTerminal

public boolean isTerminal()
Возвращает true, если экземпляр Console является терминалом.

Этот метод возвращает true, если устройство консоли, связанное с текущей виртуальной машиной Java, является терминалом — обычно интерактивной командной строкой, подключенной к клавиатуре и дисплею.

Примечание по реализации:
Реализация по умолчанию возвращает значение, эквивалентное вызову isatty(stdin/stdout) на POSIX-платформах, или проверяет, являются ли стандартные файловые дескрипторы ввода/вывода символьными устройствами в Windows.
Возвращает:
true, если экземпляр Console является терминалом
Начиная с:
22

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/Console.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API