W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.io.Console
public final class Console
extends Object
implements Flushable
訪問與當(dāng)前 Java 虛擬機(jī)關(guān)聯(lián)的基于字符的控制臺(tái)設(shè)備(如果有)的方法。
虛擬機(jī)是否具有控制臺(tái)取決于底層平臺(tái)以及調(diào)用虛擬機(jī)的方式。 如果虛擬機(jī)從交互式命令行啟動(dòng)而不重定向標(biāo)準(zhǔn)輸入和輸出流,那么它的控制臺(tái)將存在,并且通常會(huì)連接到啟動(dòng)虛擬機(jī)的鍵盤和顯示器。 如果虛擬機(jī)是自動(dòng)啟動(dòng)的,例如通過后臺(tái)作業(yè)調(diào)度程序,那么它通常不會(huì)有控制臺(tái)。
如果這個(gè)虛擬機(jī)有一個(gè)控制臺(tái),那么它由這個(gè)類的一個(gè)唯一實(shí)例表示,可以通過調(diào)用 System.console() 方法獲得。 如果沒有可用的控制臺(tái)設(shè)備,則調(diào)用該方法將返回 null。
讀寫操作同步,保證關(guān)鍵操作的原子完成; 因此,調(diào)用方法 readLine()、readPassword()、format()、printf() 以及對(duì) reader() 和 writer() 返回的對(duì)象的讀取、格式化和寫入操作可能會(huì)在多線程場(chǎng)景中阻塞。
對(duì) reader() 和 writer() 返回的對(duì)象調(diào)用 close() 不會(huì)關(guān)閉這些對(duì)象的底層流。
當(dāng)?shù)竭_(dá)控制臺(tái)輸入流的末尾時(shí),控制臺(tái)讀取方法返回 null,例如通過在 Unix 上鍵入 control-D 或在 Windows 上鍵入 control-Z。 如果稍后在控制臺(tái)的輸入設(shè)備上輸入其他字符,則后續(xù)讀取操作將成功。
除非另有說明,否則將 null 參數(shù)傳遞給此類中的任何方法都將導(dǎo)致拋出 NullPointerException。
安全說明:如果應(yīng)用程序需要讀取密碼或其他安全數(shù)據(jù),則應(yīng)使用 readPassword() 或 readPassword(java.lang.String,java.lang.Object...) 并在處理后手動(dòng)將返回的字符數(shù)組歸零 最小化內(nèi)存中敏感數(shù)據(jù)的生命周期。
Console cons;
char[] passwd;
if ((cons = System.console()) != null &&
(passwd = cons.readPassword("[%s]", "Password:")) != null) {
...
java.util.Arrays.fill(passwd, ' ');
}
Since:
1.6
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | flush() | 刷新控制臺(tái)并強(qiáng)制立即寫入任何緩沖的輸出。 |
Console | format(String fmt, Object... args) | 使用指定的格式字符串和參數(shù)將格式化字符串寫入此控制臺(tái)的輸出流。 |
Console | printf(String format, Object... args) | 使用指定的格式字符串和參數(shù)將格式化字符串寫入此控制臺(tái)的輸出流的便捷方法。 |
Reader | reader() | 檢索與此控制臺(tái)關(guān)聯(lián)的唯一 Reader 對(duì)象。 |
String | readLine() | 從控制臺(tái)讀取一行文本。 |
String | readLine(String fmt, Object... args) | 提供格式化提示,然后從控制臺(tái)讀取一行文本。 |
char[] | readPassword() | 從禁用回顯的控制臺(tái)讀取密碼或密碼 |
char[] | readPassword(String fmt, Object... args) | 提供格式化提示,然后從禁用回顯的控制臺(tái)讀取密碼或密碼。 |
PrintWriter | writer() | 檢索與此控制臺(tái)關(guān)聯(lián)的唯一 PrintWriter 對(duì)象。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public PrintWriter writer()
檢索與此控制臺(tái)關(guān)聯(lián)的唯一 PrintWriter 對(duì)象。
返回:
與此控制臺(tái)關(guān)聯(lián)的打印機(jī)
public Reader reader()
檢索與此控制臺(tái)關(guān)聯(lián)的唯一 Reader 對(duì)象。
此方法旨在由復(fù)雜的應(yīng)用程序使用,例如,使用 Scanner 提供的豐富解析/掃描功能的 Scanner 對(duì)象:
Console con = System.console();
if (con != null) {
Scanner sc = new Scanner(con.reader());
...
}
對(duì)于只需要面向行讀取的簡(jiǎn)單應(yīng)用程序,請(qǐng)使用 readLine(java.lang.String, java.lang.Object...)。
對(duì)返回對(duì)象的批量讀取操作 [read(char]) 、 [read(char], int, int) 和 read(java.nio.CharBuffer) 不會(huì)讀取超出每次調(diào)用邊界的字符,即使 目標(biāo)緩沖區(qū)有空間容納更多字符。 如果尚未在控制臺(tái)的輸入設(shè)備上輸入或到達(dá)行邊界,則 Reader 的讀取方法可能會(huì)阻塞。 行邊界被認(rèn)為是換行符('\n')、回車符('\r')、緊跟換行符的回車符或流結(jié)束中的任何一種。
返回:
與此控制臺(tái)關(guān)聯(lián)的閱讀器
public Console format(String fmt, Object... args)
使用指定的格式字符串和參數(shù)將格式化字符串寫入此控制臺(tái)的輸出流。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fmt | 格式字符串語法中描述的格式字符串 |
args | 格式字符串中的格式說明符引用的參數(shù)。 如果參數(shù)多于格式說明符,則忽略多余的參數(shù)。 參數(shù)的數(shù)量是可變的,可能為零。 參數(shù)的最大數(shù)量受《Java? 虛擬機(jī)規(guī)范》中定義的 Java 數(shù)組的最大維度限制。 空參數(shù)的行為取決于轉(zhuǎn)換。 |
返回:
這個(gè)控制臺(tái)
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalFormatException | 如果格式字符串包含非法語法、與給定參數(shù)不兼容的格式說明符、給定格式字符串的參數(shù)不足或其他非法條件。 |
public Console printf(String format, Object... args)
使用指定的格式字符串和參數(shù)將格式化字符串寫入此控制臺(tái)的輸出流的便捷方法。
調(diào)用 con.printf(format, args) 形式的此方法的行為與調(diào)用
con.format(format, args)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
format | 格式字符串語法中描述的格式字符串。 |
args | 格式字符串中的格式說明符引用的參數(shù)。 如果參數(shù)多于格式說明符,則忽略多余的參數(shù)。 參數(shù)的數(shù)量是可變的,可能為零。 參數(shù)的最大數(shù)量受《Java? 虛擬機(jī)規(guī)范》中定義的 Java 數(shù)組的最大維度限制。 空參數(shù)的行為取決于轉(zhuǎn)換。 |
返回:
這個(gè)控制臺(tái)
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalFormatException | 如果格式字符串包含非法語法、與給定參數(shù)不兼容的格式說明符、給定格式字符串的參數(shù)不足或其他非法條件。 |
public String readLine(String fmt, Object... args)
提供格式化提示,然后從控制臺(tái)讀取一行文本。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fmt | 格式字符串語法中描述的格式字符串。 |
args | 格式字符串中的格式說明符引用的參數(shù)。 如果參數(shù)多于格式說明符,則忽略多余的參數(shù)。 參數(shù)的最大數(shù)量受《Java? 虛擬機(jī)規(guī)范》中定義的 Java 數(shù)組的最大維度限制。 |
返回:
包含從控制臺(tái)讀取的行的字符串,不包括任何行終止字符,如果已到達(dá)流的結(jié)尾,則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalFormatException | 如果格式字符串包含非法語法、與給定參數(shù)不兼容的格式說明符、給定格式字符串的參數(shù)不足或其他非法條件。 |
IOError | 如果發(fā)生 I/O 錯(cuò)誤。 |
public String readLine()
從控制臺(tái)讀取一行文本。
返回:
包含從控制臺(tái)讀取的行的字符串,不包括任何行終止字符,如果已到達(dá)流的結(jié)尾,則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOError | 如果發(fā)生 I/O 錯(cuò)誤。 |
public char[] readPassword(String fmt, Object... args)
提供格式化提示,然后從禁用回顯的控制臺(tái)讀取密碼或密碼。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fmt | 提示文本的格式字符串語法中所述的格式字符串。 |
args | 格式字符串中的格式說明符引用的參數(shù)。 如果參數(shù)多于格式說明符,則忽略多余的參數(shù)。 參數(shù)的最大數(shù)量受《Java? 虛擬機(jī)規(guī)范》中定義的 Java 數(shù)組的最大維度限制。 |
返回:
包含從控制臺(tái)讀取的密碼或密碼短語的字符數(shù)組,不包括任何行終止字符,如果已到達(dá)流的結(jié)尾,則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalFormatException | 如果格式字符串包含非法語法、與給定參數(shù)不兼容的格式說明符、給定格式字符串的參數(shù)不足或其他非法條件。 |
IOError | 如果發(fā)生 I/O 錯(cuò)誤。 |
public char[] readPassword()
從禁用回顯的控制臺(tái)讀取密碼或密碼
返回:
包含從控制臺(tái)讀取的密碼或密碼短語的字符數(shù)組,不包括任何行終止字符,如果已到達(dá)流的結(jié)尾,則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOError | 如果發(fā)生 I/O 錯(cuò)誤。 |
public void flush()
刷新控制臺(tái)并強(qiáng)制立即寫入任何緩沖的輸出。
指定者:
在接口 Flushable 中刷新
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: