首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 控制台輸入三種方式對比:Scanner、Console、BufferedReader

     編輯:Java 相關知識

前言

Java 從早期的 System.in 到 JDK 5 Scanner、JDK 6 Console,提供多種控制台輸入方式。本文比較三者用法與適用場景。

1. BufferedReader (JDK 1.1+)

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine(); // 僅能讀字串,需自行轉型
  • 優點:相容所有版本,可指定編碼。
  • 缺點:只能讀字串,數值需手動 Integer.parseInt。

2. Scanner (JDK 5+)

Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int num = sc.nextInt();
double d = sc.nextDouble();
  • 優點:支援基本型別、BigInteger/BigDecimal、正則分隔符、直接解析。
  • 缺點:nextInt() 後換行符殘留需額外 nextLine() 清理。

3. Console (JDK 6+)

Console console = System.console();
if (console == null) throw new IllegalStateException("無控制台");
String pwd = new String(console.readPassword("密碼:")); // 不回顯
String line = console.readLine("輸入:");
  • 優點:支援密碼不回顯、格式化輸出 printf、編碼自動處理。
  • 缺點:IDE 內執行(如 Eclipse、IntelliJ)常回傳 null,需在真實終端機測試。

選擇建議

場景推薦
簡單字串輸入、相容舊版本BufferedReader
需解析多種型別、正則分隔Scanner
密碼輸入、格式化提示、互動式 CLIConsole
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved