2012-05-11 90 views
1
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

System.in(Standard input stream)-獲取輸入從鍵盤字節Bufferedreader說明?

InputStreamReader:字節轉換爲Unicode字符/轉換的標準輸入到讀取器對象與的BufferedReader

可以使用

Finally BufferedReader:用於從字符輸入流中讀取(輸入流讀取器)

String c = br.ReadLine(); - 用於從輸入流中讀取字符並將它們放入字符串中的方法,而不是逐字節。

一切正確嗎?如有任何問題,請糾正!

回答

6

快到了,但這:

String c = br.readLine(); - 用來讀取輸入流中的字符,並把它們在一個字符串中的方法不去逐字節。

它從輸入讀者BufferedReader不知道流)讀取字符和字符一氣呵成,沒有人物返回一整行。想想它在層中,並且在「層」上面,「字節」的概念不再存在。

另外請注意,您可以讀取與Reader字符塊,而不讀線:read(char[], int, int) - 的readLine()的一點是,它會做檢測結束你就行了。

(正如在評論中指出,這也是readLine,不ReadLine :)

+0

他得到'readLine'錯誤的情況:) –

+0

@MarkoTopolnik:編輯指出,謝謝。 –

+0

但是如果有人在聲明中詢問BufferedReader的目的是什麼,我不應該說它從輸入流讀取器讀取字符? – Nil

0

什麼是BufferedReader中,解釋的目的是什麼?

Bufferedreader是一個java類,下面是這個類的層次結構。

java.lang.Object中==> java.io.Reader中==> java.io.BufferedReader中

此外,BufferedReader中提供了一個有效的方式來讀取內容。很簡單.. 讓我們來看看下面的例子來理解。

import java.io.BufferedReader; 
import java.io.FileReader; 

public class Main { 

    public static void main(String[] args) { 

     BufferedReader contentReader = null; 
     int total = 0; // variable total hold the number that we will add 

     //Create instance of class BufferedReader 
     //FileReader is built in class that takes care of the details of reading content from a file 
     //BufferedReader is something that adds some buffering on top of that to make reading fom a file more efficient. 
     try{ 
      contentReader = new BufferedReader(new FileReader("c:\\Numbers.txt")); 
      String line = null; 

      while((line = contentReader.readLine()) != null) 

       total += Integer.valueOf(line); 

      System.out.println("Total: " + total); 
     } 

     catch(Exception e) 
     { 
      System.out.println(e.getMessage()); 
     } 

     finally{ 
      try{ 
       if(contentReader != null) 
        contentReader.close(); 
      } 

      catch (Exception e) 
      { 
       System.out.println(e.getMessage()); 
      } 
     } 



    } 
}