輸入和輸出是應用程式與使用者進行互動的方式,在命令列方式下通過標準輸入和輸出裝置(鍵盤和顯示器的控制台),在windows應用中可以通過圖形化使用者介面與使用者進行互動,而Web應用中主要通過瀏覽器和HTML語言與使用者進行互動。圖形化使用者介面現在用的不是很多,而Web應用比較多。而在學習Java基本文法的時候,基本的通過命令列方式的輸入和控制台方式的輸出使用比較方便,可以採用這種方式。本次內容介紹基本的通過命名行方式的輸入和輸出。
基本輸出輸出主要使用System.out.print和System.out.println方法,前面實際上已經使用過。它們的區別是前者不換行,而後者輸出之後會換行。可以輸出任何資料類型。例如: System.out.println(1111); System.out.println(true); System.out.println(2323.33); System.out.println("字串"); System.out.println('a');
基本輸入下面主要介紹如何接受鍵盤的輸入。最基本的方式是通過System.in.read()方法,但是該方法每次接收一個字元,方法的傳回值是該字元的編碼。例如,要接收一個輸入,可以使用如下代碼:temp = System.in.read();其中,temp為int類型變數。如果要接收一個數字,例如22,需要自己處理,下面的例子展示了如何把輸入資訊轉換成數字:【例1】package iotest; public class SimpleIOTest { /** * @param args */ public static void main(String[] args) { System.out.println("請輸入5個整數,以空格分開,以斷行符號結束:"); try{ // 用於儲存5個數位數組 int a[]=new int[5]; int i=0; int temp; while(true){ // 擷取輸入字元 temp = System.in.read(); if((char)temp==' '){ // 遇到空格表示下一個整數 i++; } else if((char)temp=='/r'){ // 分行符號結束 break; }else{ // 把輸入的字元構造成數字 a[i] = a[i]*10+Integer.parseInt(String.valueOf((char)temp)); } } for(int element:a){ // 迴圈輸出5個數字 System.out.println(element); } }catch(Exception e){ System.out.println("異常:"+e.toString()); } }}這種方式非常麻煩,下面介紹兩種常用的方式。
使用BufferedReader BufferedReader對基本輸入資料流System.in進行了封裝,使用它每次可以讀入一行資料,然後可以再對資料進行分析,下面的例子完成了與上面的例子相同的功能,但是代碼更容易理解,裡面有很多代碼不理解沒有關係,先記住代碼。【例2】package iotest; import java.io.InputStreamReader;import java.io.BufferedReader; public class BufferedReaderTest { public static void main(String args[]){ System.out.println("請輸入5個整數,以空格分開,以斷行符號結束:"); try{ // 用於儲存5個數位數組 int a[] = new int[5]; // 建立輸入資料流對象 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 讀取一行資訊 String input = reader.readLine(); // 以空格為分隔字元,轉換成數組 String[] numbers = input.split(" "); // 把字串轉換為數字,並輸出 for(int i=0;i<5;i++){ // 把字串轉換為數字 a[i] = Integer.parseInt(numbers[i]); System.out.println(a[i]); } }catch(Exception e){ System.out.println("異常:"+e.toString()); } }}
使用Scanner使用BufferedReader使代碼簡單了一些,但是還不夠簡單,使用Scanner可以使代碼更簡單。下面的代碼展示了用法。【例3】package iotest; import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { System.out.println("請輸入5個整數,以空格分開,以斷行符號結束:"); try{ // 建立Scanner對象 Scanner scanner = new Scanner(System.in); // 用於儲存5個數位數組 int a[] = new int[5]; for(int i=0;i<5;i++){ // 把字串轉換為數字 a[i] = scanner.nextInt(); System.out.println(a[i]); } }catch(Exception e){ System.out.println("異常:"+e.toString()); } }}還有其他的next方法,感興趣的可以看JDK的協助文檔。 上一次:
第十六講
日期和時間的使用 下一次:
第十八講 String用法(上) 李緒成 CSDN Blog:http://blog.csdn.net/javaeeteacher 邀請您為好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5