Java語言中,,從控制臺(tái)讀取數(shù)據(jù)是一個(gè)比較常用的功能,,在JDK 5.0以前的版本中的實(shí)現(xiàn)是比較復(fù)雜的,需要手工處理系統(tǒng)的輸入流,。從JDK 5.0版本開始,,能從控制臺(tái)中輸入數(shù)據(jù)的方法每增加一個(gè)版本號(hào),就有一種新增的方法,,這也增加了選擇的種類,,可以依據(jù)不同的要求來進(jìn)行選擇。下面和小編一起來了解一下各個(gè)版本從控制臺(tái)中讀取數(shù)據(jù)的方法以及各自的優(yōu)缺點(diǎn),。 1,、 JDK 1.4 及以下版本從控制臺(tái)讀取數(shù)據(jù)的方法 JDK 1.4 及以下的版本中要想從控制臺(tái)中輸入數(shù)據(jù)只有一種辦法,即使用System.in獲得系統(tǒng)的輸入流,,再橋接至字符流從字符流中讀入數(shù)據(jù),。 示例代碼如下: import java.io.IOException; import java.io.InputStreamReader; public class Test1 { public static void main(String[] args) { String str = readString("請(qǐng)輸入字符串:"); System.out.println("readString 方法的輸入:" + str); } /** * 使用系統(tǒng)的輸入流,從控制臺(tái)中讀取數(shù)據(jù) * 用于所用的JDK版本 * @param prompt 提示信息 * @return 輸入的字符串 */ private static String readString(String prompt) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; try { System.out.print(prompt); str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } 從上面的代碼段來看,,這種控制臺(tái)輸入的方法非常地麻煩,,為了能讀取整行的數(shù)據(jù),,采用了BufferedReader類來進(jìn)行處理,而且在讀取的過程中還需要捕獲IOException.不過這是 JDK 1.4 及以下版本中從控制臺(tái)讀取數(shù)據(jù)唯一的辦法,。 還有一種非控制臺(tái)讀入數(shù)據(jù)的辦法,,就是采用 Swing 中的JOptionPane,會(huì)彈出一個(gè)非常漂亮的輸入對(duì)話框讓使用者輸入數(shù)據(jù),但這是一種比較另類的做法,,不推薦使用,。 示例代碼如下: import javax.swing.JOptionPane; public class Test2 { public static void main(String[] args) { String str = readStringFromDialog("請(qǐng)輸入字符串:"); System.out.println("readStringFromDialog 方法的輸入:" + str); } /** * 使用JOptionPane的輸入對(duì)話框,輸入中關(guān)村字符串 * 用于所用的JDK版本 * @param prompt 提示信息 * @return 輸入的字符串 */ private static String readStringFromDialog(String prompt) { return JOptionPane.showInputDialog(prompt); } } 上面的兩種方法都有個(gè)共同的缺點(diǎn)--只能讀取字符串,,若需要讀取其他類型的數(shù)據(jù)需要手工進(jìn)行轉(zhuǎn)換,。 |
|