|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.Console
public final class Console
此類別包含多個方法,可存取與當前 Java 虛擬機器關聯的基於字元的終端機設備(如果有)。
虛擬機器是否具有終端機取決於底層平臺,還取決於調用虛擬機器的方式。如果虛擬機器從一個交談式命令行開始啟動,且沒有重定向標準輸入和輸出串流,那麼其終端機將存在,並且通常連接到鍵盤並從虛擬機器啟動的地方顯示。如果虛擬機器是自動啟動的(例如,由後台作業排程程序啟動),那麼它通常沒有終端機。
如果此虛擬機器具有終端機,那麼它將由此類別唯一的實例(可通過調用 System.console()
方法獲得)表示。如果沒有可用的終端機設備,那麼對該方法的調用將返回 null。
讀寫操作是同步的,以保證關鍵操作能完整地完成;因此調用方法 readLine()
、readPassword()
、format()
、printf()
以及對 reader()
和 writer()
返回物件的讀取、格式化和寫入操作在多執行緒情況下可能阻塞。
在 reader()
和 writer()
返回的物件上調用 close() 不會關閉這些物件的底層串流。
在到達終端機輸入串流的尾部時,如鍵入 control-D (Unix) 或鍵入 control-Z (Windows),讀取終端機的方法將返回 null。如果之後在終端機輸入設備上輸入了其他字元,則後續讀取操作將成功執行。
除非另行指定,否則將 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, ' '); }
方法摘要 | |
---|---|
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 |
方法詳細資訊 |
---|
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)
不會讀入行邊界之外的字元,即使目標緩衝區還有可容納更多字元的空間。下列字元之一被認為是行邊界:換行 ('\n')、回車(Enter) ('\r')、回車(Enter)後緊跟換行,或者串流末尾。
public Console format(String fmt, Object... args)
fmt
- 格式字元串語法中描述的格式字元串args
- 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java 虛擬機器規範定義的 Java 陣列最大維數的限制。null 參數的行為取決於轉換。
IllegalFormatException
- 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。public Console printf(String format, Object... args)
此方法 con.printf(format, args) 形式的調用與以下調用的行為完全相同:
con.format(format, args).
format
- 格式字元串語法中描述的格式字元串。args
- 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java 虛擬機器規範定義的 Java 陣列最大維數的限制。null 參數的行為取決於轉換。
IllegalFormatException
- 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。public String readLine(String fmt, Object... args)
fmt
- 格式字元串語法中描述的格式字元串。args
- 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的最大數量受到 Java 虛擬機器規範定義的 Java 陣列最大維數的限制。
IllegalFormatException
- 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
IOError
- 如果發生 I/O 錯誤。public String readLine()
IOError
- 如果發生 I/O 錯誤。public char[] readPassword(String fmt, Object... args)
fmt
- 提示文本的格式字元串語法中描述的格式字元串。args
- 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的最大數量受到 Java 虛擬機器規範定義的 Java 陣列最大維數的限制。
IllegalFormatException
- 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
IOError
- 如果發生 I/O 錯誤。public char[] readPassword()
IOError
- 如果發生 I/O 錯誤。public void flush()
Flushable
中的 flush
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。