Класс Console
- Все реализуемые интерфейсы:
Flushable
public sealed class Console extends Object implements Flushable
Наличие консоли у виртуальной машины зависит от базовой платформы, а также от способа запуска виртуальной машины. Если виртуальная машина запускается из интерактивной командной строки без перенаправления стандартных потоков ввода и вывода, то её консоль существует и, как правило, подключена к клавиатуре и дисплею, с которых была запущена виртуальная машина. Если виртуальная машина запускается автоматически, например, планировщиком фоновых задач, то у неё может и не быть консоли.
Если у этой виртуальной машины есть консоль, то она представлена уникальным экземпляром этого класса, который можно получить, вызвав метод System.console(). Если консольное устройство недоступно, то вызов этого метода вернёт null.
Операции чтения и записи синхронизированы для обеспечения атомарного завершения критических операций; поэтому вызов методов readLine(), readPassword(), format(), printf(), а также операции чтения, форматирования и записи над объектами, возвращаемыми reader() и writer(), могут заблокироваться в многопоточных сценариях.
Операции форматирования строк чувствительны к локали, используя либо указанную 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 |
Записывает форматированную строку в поток вывода этой консоли, используя указанную строку форматирования и аргументы с использованием default format locale. |
Console |
format |
Записывает форматированную строку в поток вывода этой консоли, используя указанную строку форматирования и аргументы с указанной locale. |
boolean |
isTerminal() |
Возвращает true, если экземпляр Console является терминалом. |
Console |
print |
Предварительный просмотр. Записывает строковое представление указанного объекта в поток вывода этой консоли, а затем очищает консоль. |
Console |
printf |
Удобный метод для записи форматированной строки в поток вывода этой консоли, используя указанную строку форматирования и аргументы с использованием default format locale. |
Console |
printf |
Удобный метод для записи форматированной строки в поток вывода этой консоли, используя указанную строку форматирования и аргументы с указанной locale. |
Console |
println() |
Предварительный просмотр. Завершает текущую строку в потоке вывода этой консоли, используя System.lineSeparator(), а затем очищает консоль. |
Console |
println |
Предварительный просмотр. Записывает строковое представление указанного объекта в поток вывода этой консоли, завершает строку с использованием System.lineSeparator(), а затем очищает консоль. |
Reader |
reader() |
Возвращает уникальный объект Reader, связанный с этой консолью. |
String |
readLine() |
Считывает строку текста из консоли. |
String |
readLine |
Предоставляет форматированный запрос с использованием default format locale, а затем считывает строку текста из консоли. |
String |
readLine |
Предоставляет форматированный запрос, используя указанную locale, а затем считывает строку текста из консоли. |
String |
readln() |
Предварительный просмотр. Считывает строку текста из этой консоли. |
String |
readln |
Предварительный просмотр. Выводит запрос, как если бы вызывался print, а затем считывает строку текста из этой консоли. |
char[] |
readPassword() |
Считывает пароль или пароль из консоли с отключенным отображением. |
char[] |
readPassword |
Предоставляет форматированный запрос с использованием default format locale, а затем считывает пароль или пароль из консоли с отключенным отображением. |
char[] |
readPassword |
Предоставляет форматированный запрос, используя указанную locale, а затем считывает пароль или пароль из консоли с отключенным отображением. |
PrintWriter |
writer() |
Возвращает уникальный объект PrintWriter, связанный с этой консолью. |
Подробное описание методов
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(java.lang.String, java.lang.Object...).
Операции пакетного чтения read(char[]), read(char[], int, int) и read(java.nio.CharBuffer) над возвращённым объектом не будут читать символы, выходящие за пределы строки для каждого вызова, даже если буфер назначения имеет место для большего количества символов. Методы Reader для read могут заблокироваться, если граница строки не была введена или достигнута на устройстве ввода консоли. Границей строки считается любой из перечисленных символов: символ новой строки ('\n'), символ возврата каретки ('\r'), символ возврата каретки, за которым сразу следует символ новой строки, или конец потока.
- Возвращает:
- Объект reader, связанный с этой консолью
println
public Console println(Object obj)
println — это предварительная версия API платформы Java. System.lineSeparator() и затем сбрасывает консоль. Строковое представление указанного объекта получается так, как если бы было вызвано String.valueOf(Object).
- Параметры:
-
obj- Объект, чьё строковое представление должно быть записано, может бытьnull. - Возвращает:
- Эта консоль
- С:
- 23
println
public Console println()
println — это предварительная версия API платформы Java. println только при включённых предварительных функциях.System.lineSeparator() и затем сбрасывает консоль.- Возвращает:
- Эта консоль
- С:
- 24
public Console print(Object obj)
print — это предварительная версия API платформы Java. print только при включённых предварительных функциях. Строковое представление указанного объекта получается так, как если бы было вызвано String.valueOf(Object).
- Параметры:
-
obj- Объект, чьё строковое представление должно быть записано, может бытьnull. - Возвращает:
- Эта консоль
- С:
- 23
readln
public String readln(String prompt)
readln — это предварительная версия API платформы Java. readln только при включённых предварительных функциях.print, затем считывает одну строку текста из этой консоли.- Параметры:
-
prompt- Строка запроса, может бытьnull. - Возвращает:
- Строка, содержащая прочитанную строку из консоли, без символов завершения строки, или
null, если конец потока был достигнут без считывания каких-либо символов. - Исключения:
-
IOError- Если произошла ошибка ввода-вывода. - С:
- 23
readln
public String readln()
readln — это предварительная версия API платформы Java. readln только при включённых предварительных функциях.- Возвращает:
- Строка, содержащая прочитанную строку из консоли, без символов завершения строки, или
null, если конец потока был достигнут без считывания каких-либо символов. - Исключения:
-
IOError- Если произошла ошибка ввода-вывода. - С:
- 24
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
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
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/Console.html
printlnтолько при включённых предварительных функциях.