Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class Console extends Object implements Flushable
Есть ли у виртуальной машины консоль, зависит от базовой платформы и также от способа, которым вызывается виртуальная машина. Если виртуальная машина будет запущена с интерактивной командной строки, не перенаправляя стандартные потоки входа и выхода тогда, то его консоль будет существовать и будет обычно соединяться с клавиатурой и дисплеем, от которого была запущена виртуальная машина. Если виртуальная машина будет запущена автоматически, например планировщиком фонового задания, то у нее обычно не будет консоли.
Если у этой виртуальной машины есть консоль тогда, она представляется уникальным экземпляром этого класса, который может быть получен, вызывая System.console()
метод. Если никакое консольное устройство не будет доступно тогда, то вызов того метода возвратит null.
Операции чтения и операции записи синхронизируются, чтобы гарантировать атомарное завершение критических операций; поэтому вызов методов readLine()
, readPassword()
, format()
, printf()
так же как чтение, формат и операции записи на объектах, возвращенных reader()
и writer()
может блокировать в многопоточных сценариях.
Вызов close() на объектах, возвращенных reader()
и writer()
не будет закрывать базовый поток тех объектов.
Считанные из консоли методы возвращают null, когда конец консольного входного потока достигается, например вводя управление-D на Unix или управление-Z на Windows. Последующие операции чтения успешно выполнятся, если дополнительные символы будут позже вводиться в устройство ввода консоли.
Если иначе не определено, передавая параметр null любому методу в этом классе вызовет a 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, ' '); }
Модификатор и Тип | Метод и Описание |
---|---|
void |
flush()
Сбрасывает консоль и вынуждает любой буферизованный вывод быть сразу записанным.
|
Консоль |
format(String fmt, Object... args)
Пишет отформатированная строка в поток вывода этой консоли, используя указанную строку формата и параметры.
|
Консоль |
printf(String format, Object... args)
Метод удобства, чтобы записать отформатированную строку в поток вывода этой консоли, используя указанную строку формата и параметры.
|
Читатель |
reader()
Получает уникальное
Reader объект связался с этой консолью. |
Строка |
readLine()
Читает одну строку текста от консоли.
|
Строка |
readLine(String fmt, Object... args)
Обеспечивает отформатированную подсказку, затем читает одну строку текста от консоли.
|
char[] |
readPassword()
Читает пароль или пароль от консоли с повторением отключенного
|
char[] |
readPassword(String fmt, Object... args)
Обеспечивает отформатированную подсказку, затем читает пароль или пароль от консоли с повторением отключенного.
|
PrintWriter |
writer()
Получает уникальное
PrintWriter объект связался с этой консолью. |
public PrintWriter writer()
PrintWriter
объект связался с этой консолью.public Reader reader()
Reader
объект связался с этой консолью. Этот метод предназначается, чтобы использоваться сложными приложениями, например, a 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)
на возвращенном объекте не будет читать в символах вне строки, направляющейся в каждый вызов, даже если у целевого буфера будет пространство для большего количества символов. Связанная строка, как полагают, является любым из перевода строки ('\n'), возврат каретки ('\r'), возврат каретки, сопровождаемый сразу переводом строки, или концом потока.
public Console format(String fmt, Object... args)
fmt
- Строка формата как описано в Формате представляет синтаксис в виде строкиargs
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Число параметров является переменным и может быть нулем. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™. Поведение на параметре null зависит от преобразования.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации класса средства форматирования.public Console printf(String format, Object... args)
Вызов этого метода формы con.printf(format, args) ведет себя точно таким же образом как вызов
con.format(format, args).
format
- Строка формата как описано в Формате представляет синтаксис в виде строки.args
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Число параметров является переменным и может быть нулем. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™. Поведение на параметре null зависит от преобразования.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации класса средства форматирования.public String readLine(String fmt, Object... args)
fmt
- Строка формата как описано в Формате представляет синтаксис в виде строки.args
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации класса средства форматирования.IOError
- Если ошибка ввода-вывода происходит.public String readLine()
IOError
- Если ошибка ввода-вывода происходит.public char[] readPassword(String fmt, Object... args)
fmt
- Строка формата как описано в Формате представляет синтаксис в виде строки для быстрого текста.args
- На параметры ссылаются спецификаторы формата в строке формата. Если есть больше параметров чем спецификаторы формата, дополнительные параметры игнорируются. Максимальное количество параметров ограничивается максимальной размерностью массива Java как определено Спецификацией Виртуальной машины Java™.IllegalFormatException
- Если строка формата содержит недопустимый синтаксис, спецификатор формата, который является несовместимым с данными параметрами, недостаточные параметры, данные строку формата, или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Деталей спецификации класса средства форматирования.IOError
- Если ошибка ввода-вывода происходит.public char[] readPassword()
IOError
- Если ошибка ввода-вывода происходит.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.