Spec-Zone.ru › OpenJDK 17

Класс Console

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

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

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

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

Вызов 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 fmt, Object... args)
Записывает отформатированную строку в выходной поток консоли с использованием указанной строки форматирования и аргументов.
Console printf(String format, Object... args)
Удобный метод для записи отформатированной строки в выходной поток консоли с использованием указанной строки форматирования и аргументов.
Reader reader()
Возвращает уникальный объект Reader, связанный с этой консолью.
String readLine()
Считывает строку текста из консоли.
String readLine(String fmt, Object... args)
Предоставляет отформатированный запрос, а затем считывает строку текста из консоли.
char[] readPassword()
Считывает пароль или пароль-фразу из консоли с отключённым отображением ввода.
char[] readPassword(String fmt, Object... args)
Предоставляет отформатированный запрос, а затем считывает пароль или пароль-фразу из консоли с отключённым отображением ввода.
PrintWriter writer()
Возвращает уникальный объект PrintWriter, связанный с этой консолью.

Методы, объявленные в классе java.lang.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(java.lang.String, java.lang.Object...).

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

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

format

public Console format(String fmt, Object... args)
Записывает отформатированную строку в выходной поток этой консоли с использованием заданной строки форматирования и аргументов.
Параметры:
fmt - Строка форматирования, как описано в Синтаксис строки форматирования
args - Аргументы, на которые ссылаются спецификаторы форматирования в строке форматирования. Если аргументов больше, чем спецификаторов форматирования, лишние аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java. Поведение с аргументом null зависит от преобразования.
Возвращает:
Эта консоль
Исключение:
IllegalFormatException - Если строка форматирования содержит неверный синтаксис, спецификатор форматирования несовместим с заданными аргументами, недостаточно аргументов для строки форматирования или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика.

printf

public Console printf(String format, Object... args)
Удобный метод для записи отформатированной строки в выходной поток этой консоли с использованием заданной строки форматирования и аргументов.

Вызов этого метода в формате con.printf(format, args) ведет себя точно так же, как вызов

con.format(format, args)
.
Параметры:
format - Строка форматирования, как описано в Синтаксис строки форматирования.
args - Аргументы, на которые ссылаются спецификаторы форматирования в строке форматирования. Если аргументов больше, чем спецификаторов форматирования, лишние аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java. Поведение с аргументом null зависит от преобразования.
Возвращает:
Эта консоль
Исключение:
IllegalFormatException - Если строка форматирования содержит неверный синтаксис, спецификатор форматирования несовместим с заданными аргументами, недостаточно аргументов для строки форматирования или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика.

readLine

public String readLine(String fmt, Object... args)
Выводит форматированный запрос, затем считывает одну строку текста из консоли.
Параметры:
fmt - Строка форматирования, как описано в Синтаксис строки форматирования.
args - Аргументы, на которые ссылаются спецификаторы форматирования в строке форматирования. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java.
Возвращает:
Строка, содержащая прочитанную строку из консоли, не включая символы конца строки, или null, если достигнут конец потока.
Исключение:
IllegalFormatException - Если строка форматирования содержит неверный синтаксис, спецификатор форматирования несовместим с заданными аргументами, недостаточно аргументов для строки форматирования или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика.
IOError - Если произошла ошибка ввода-вывода.

readLine

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

readPassword

public char[] readPassword(String fmt, Object... args)
Выводит форматированный запрос, затем считывает пароль или пароль-фразу из консоли без отображения ввода.
Параметры:
fmt - Строка форматирования, как описано в Синтаксис строки форматирования для текста запроса.
args - Аргументы, на которые ссылаются спецификаторы форматирования в строке форматирования. Если аргументов больше, чем спецификаторов форматирования, лишние аргументы игнорируются. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java.
Возвращает:
Массив символов, содержащий пароль или пароль-фразу, прочитанные из консоли, не включая символы конца строки, или null, если достигнут конец потока.
Исключение:
IllegalFormatException - Если строка форматирования содержит неверный синтаксис, спецификатор форматирования несовместим с заданными аргументами, недостаточно аргументов для строки форматирования или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика.
IOError - Если произошла ошибка ввода-вывода.

readPassword

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

flush

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

charset

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

Возвращаемая кодировка соответствует источнику ввода и вывода (например, клавиатуре и/или дисплею), указанному средой или пользователем. Она может не совпадать с кодировкой по умолчанию, возвращаемой из Charset.defaultCharset().

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

© 1993, 2021, 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/17/docs/api/java.base/java/io/Console.html

Spec-Zone.ru

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