實例程式:
1.利用Scanner 實現從鍵盤讀入integer或float 型數據
2.利用BufferedReader實作從鍵盤讀入字串並寫入檔案abc.txt中
關於JDK1.5 Scanner類別的說明
Scanner是SDK1.5新增的一個類別,可是使用該類別建立一個物件.
Scanner reader=new Scanner(System.in);
然後reader物件呼叫下列方法(函數),讀取使用者在命令列輸入的各種資料型態:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
使用nextLine()方法輸入行中可能包含空格.如果讀取的是一個單字,則可呼叫.next()方法
3、Scanner和BufferedReader的差別
在命令列模式下要輸入資料至程式時,我們可以使用標準輸入串物件System.in.但是,我們並不經常直接使用它,因為System.in提供的read方法每次只能讀取一個字節的資料,而我們平常所應用的通常是讀取一個字串或是一個數字,所以read方法所以提供的功能,對我們來說並沒有太大的用處.
在Java SE 6中,可以使用Scanner類別取得使用者的輸入,Scanner類別位於java.util套件中,如果你要使用Scanner取得使用者輸入的話,要加上import java.util.Scanner;這條語句.import的功能是告訴編譯器,你將使用java.util套件中的Scanner類別.
我們來看一個例子:
運行上面的程式,你將會看到你輸入的字串將在下面原樣顯示出來.
我們來看看這個程式中每個語句的意思:
new是建立一個物件,程式中new的意思是建立了一個Scanner類別的物件scan.但是在建立Scanner類別的物件時,需要用System.in 作為它的參數,也可以將Scanner看作是System.in物件的支持者,System.in取得使用者輸入的內容後,交給Scanner來做一些處理.
Scanner類別中提供了多種方法:
next():取得一個字串;
nextInt():將取得的字串轉換成int型別的整數;
nextFloat():將取得的字串轉換成float型;
nextBoolean():將取得的字串轉換成boolean型;
用Scanner獲得用戶的輸入非常的方便,但是Scanner取得輸入的依據是空格符,包括空格鍵,Tab鍵和Enter鍵.當按下這其中的任一鍵時,Scanner就會返回下一個輸入. 當你輸入的內容中間包括空格時,顯然,使用Scanner就不能完整的獲得你輸入的字符串.這時候我們可以考慮使用BufferedReader類取得輸入.其實在Java SE 1.4及以前的版本中,尚沒有提供Scanner方法,我們獲得輸入時也是使用BufferReader的.
BufferedReader類別位於java.io套件中,所以要使用這個類別,就要引入java.io這個套件:import java.io.BufferedReader.
使用BufferedReader物件的readLine()方法必須處理java.io.IOException異常(Exception).
使用BufferedReader來取得輸入,理解起來要複雜得多.但是使用這個方法是固定的,每次使用前先如法炮製就可以了.
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String text = buffer.readLine();
readLine()方法會傳回使用者在按下Enter鍵之前的所有字元輸入,不包含最後按下的Enter回傳字元.
完整的範例程式如下:
}
4.如下面的程式所示:class StringTest
在執行語句即:java + 類別名稱後面輸入內容,即會被args接收,
因為args是接收命令列參數的。