2013-10-23 37 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