Spec-Zone.ru › OpenJDK 21

Класс 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(), могут заблокироваться в многопоточных сценариях.

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

Методы чтения консоли возвращают null при достижении конца потока ввода консоли, например, при вводе комбинации Ctrl-D в Unix или Ctrl-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 могут заблокироваться, если граница строки не была введена или достигнута на устройстве ввода консоли. Граница строки считается любой из следующих: символ перевода строки ('\n'), символ возврата каретки ('\r'), символ возврата каретки, за которым сразу следует символ перевода строки, или конец потока.

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

format

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

printf

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

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

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

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 - Если строка формата содержит неверный синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточно аргументов для строки формата или другие неверные условия. Для спецификации всех возможных ошибок форматирования см. раздел Подробности спецификации класса formatter.
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, 2023, 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/21/docs/api/java.base/java/io/Console.html

Spec-Zone.ru

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