Spec-Zone.ru › OpenJDK 8

Класс 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

Методы

Модификатор и тип Метод и описание
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 - Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Подробности спецификации класса formatter.
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

© 1993, 2020, 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.

Spec-Zone.ru

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