2013-10-23 35 views
0

閱讀最後一行在我的代碼我需要輸入從控制檯讀取它像這樣:的BufferedReader無法在java中

InputStreamReader sc = new InputStreamReader(System.in);
BufferedReader bufRead = new BufferedReader(sc);

但是,當我不能夠閱讀的最後一行輸入?

例如: 如果我想讀c和控制檯輸入如下所示,

時沒有什麼℃後它是沒有得到

一個
b
C(EOF)

但對於像C在此之後,其中輸入控制檯一條線是有也可以READ C

一個
b
Ç
(EOF)

實際代碼:

 InputStreamReader sc = new InputStreamReader(System.in); 
     BufferedReader bufRead = new BufferedReader(sc); 
     String s = bufRead.readLine(); 
     int t = Integer.parseInt(s); 
     int k = 0; // no. of city 

     for (int l = 0; l < t; l++) { 
      s = bufRead.readLine(); 
      k = Integer.parseInt(s); 
      cityDetails = new String[3][k]; 

      for (int j = 0; j < k; j++) { 
       s = bufRead.readLine(); 
       StringTokenizer st = new StringTokenizer(s); 
       cityDetails[0][j] = st.nextToken(); 
       cityDetails[1][j] = st.nextToken(); 
       cityDetails[2][j] = st.nextToken(); 
      } 
      s = bufRead.readLine(); 
      dist = Double.parseDouble(s); 
      System.out.println(dist); 

} 
+1

你沒有看到任何東西。發佈所有相關的代碼,以便我們可以幫助你。 – utdemir

+0

'BufferedReader'中的'line'由'\ n'終止。換句話說,ENTER鍵。如果你寫'a [ENTER] b [ENTER] c [ENTER]',那麼它們就是三行。 =) –

+0

@LittleChild:正確,但是有沒有什麼辦法可以在'system.in'結尾附加'[ENTER]',因爲我沒有給它輸入它是由系統給出的,所以我不能添加'[ENTER] '有 – user2908533

回答

0

你需要閱讀,直到BufferedReader沒有返回null。它需要在一個循環中。
這裏是由Mykong

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

public class BufferedReaderExample { 

    public static void main(String[] args) { 

     BufferedReader br = null; 

     try { 

      String sCurrentLine; 

      br = new BufferedReader(new FileReader("C:\\testing.txt")); 

      while ((sCurrentLine = br.readLine()) != null) { 
       System.out.println(sCurrentLine); 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (br != null)br.close(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

    } 
} 

忽略文件一部分的例子。重要的是如何使用BufferedReader來閱讀。鍵盤輸入和文件保持不變。

或者,您可以使用具有讀取不同類型的原始數據的方法的java.util.Scanner

+0

以前我只使用掃描儀,但它有同樣的問題 – user2908533

+0

您需要循環。你需要閱讀一個循環。 –

+0

是否有讀取system.in的最後一行的任何函數 – user2908533