public final class Console extends Object implements Flushable
是否有一个控制台的虚拟机是依赖于底层的平台,也取决于虚拟机被调用的方式。如果虚拟机从一个交互式命令行没有重定向标准输入和输出流,然后它的控制台将存在,通常会被连接到键盘和显示的虚拟机启动。如果虚拟机是自动启动的,例如后台作业调度程序,那么它通常不会有一个控制台。
如果虚拟机有一个控制台,然后通过一个独特的这个类可以通过调用System.console()
方法获得实例表示。如果没有控制台设备可用的方法将返回null调用。
读写操作是同步以保证关键操作的原子完成;因此调用方法readLine()
,readPassword()
,format()
,printf()
以及阅读,格式和对象的写操作返回的reader()
和writer()
可能阻止在多线程方案。
close()在调用返回的对象的reader()
和writer()
不会关闭这些对象的基本流。
控制台读方法返回null在控制台输入到达流的末尾,例如打字在UNIX或Windows主提示符后control-Z。如果稍后在控制台的输入设备上输入其他字符,则后续的读操作将成功。
除非另有规定,通过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, ' '); }
Modifier and Type | Method and Description |
---|---|
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 对象。
|
public PrintWriter writer()
PrintWriter
对象。
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'),回车后紧跟一个换行,或流结束。
public Console format(String fmt, Object... args)
fmt
-格式字符串中所描述的
Format string syntax
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的数量是可变的,可能是零。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸限制。在
null争论的行为取决于
conversion。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节。
public Console printf(String format, Object... args)
这种形式的con.printf(format, args)方法调用的行为完全一样的调用
条件格式(格式,args)。。
format
-格式字符串中所描述的
Format string syntax。
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的数量是可变的,可能是零。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸的限制。在
null争论的行为取决于
conversion。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节。
public String readLine(String fmt, Object... args)
fmt
-格式字符串中所描述的
Format string syntax。
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸限制。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节。
IOError
如果I/O错误发生。
public String readLine()
IOError
如果I/O错误发生。
public char[] readPassword(String fmt, Object... args)
fmt
-格式字符串中所描述的
Format string syntax的提示文字。
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸限制。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节。
IOError
如果I/O错误发生。
public char[] readPassword()
IOError
如果I/O错误发生。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.