Java 從早期的 System.in 到 JDK 5 Scanner、JDK 6 Console,提供多種控制台輸入方式。本文比較三者用法與適用場景。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine(); // 僅能讀字串,需自行轉型
Integer.parseInt。Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int num = sc.nextInt();
double d = sc.nextDouble();
nextInt() 後換行符殘留需額外 nextLine() 清理。Console console = System.console();
if (console == null) throw new IllegalStateException("無控制台");
String pwd = new String(console.readPassword("密碼:")); // 不回顯
String line = console.readLine("輸入:");
printf、編碼自動處理。null,需在真實終端機測試。| 場景 | 推薦 |
|---|---|
| 簡單字串輸入、相容舊版本 | BufferedReader |
| 需解析多種型別、正則分隔 | Scanner |
| 密碼輸入、格式化提示、互動式 CLI | Console |