1. 程式人生 > >JAVA scanner掃描器和BufferedReader流輸入的用法

JAVA scanner掃描器和BufferedReader流輸入的用法

       二者都可以從鍵盤接收資料,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是從字元輸入流中讀取文字,緩衝各個字元,從而提供字元、陣列和行的高效讀取!