JAVA scanner掃描器和BufferedReader流輸入的用法
阿新 • • 發佈:2019-02-01
二者都可以從鍵盤接收資料,API文件解釋,public BufferedReader(Reader in)方法建立使用預設大小的輸入緩衝區的緩衝字元輸入流。public Scanner(InputStream source) 構造一個新的掃描器,它產生從指定的輸入流掃描的值,從流位元組轉換為字元使用基礎平臺的預設字符集。
Scanner的用法:
import java.util.Scanner; public class Main { private static Scanner scan; public static void main(String[] args) { System.out.println("請輸入一行字串:"); scan = new Scanner(System.in); String str = scan.nextLine(); System.out.println("用scanner輸入的字串是:"); System.out.println(str); } }
輸出結果為:
BufferedReader的用法:
import java.io.*; public class Main { public static void main(String[] args) throws IOException{ System.out.println("請輸入一行字串:"); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String str = stdin.readLine(); System.out.println("用BufferedReader輸入的字串是:"); System.out.println(str); } }
輸出結果為:
注意:使用BufferedReader()時要處理IOException異常。
BufferedReader.readLine()方法和Scanner.nextLine()方法用法是一樣的,都是接收一行內容,以回車換行符結束,但不包括回車換行符。另外雖然使用Scanner類的物件讀取輸入資料比較方便但是執行效率相比BufferedReader低,同時Scanner佔用記憶體空間也大,而且資料量越大,差異越明顯;BufferedReader是從字元輸入流中讀取文字,緩衝各個字元,從而提供字元、陣列和行的高效讀取!