2015-06-29 41 views
0

当我试图通过使用此程序读取所有行......它使我少了一行输出。使用BufferedReader或扫描仪处理Java中的多个输入

样本程序:

String line = null; 
Scanner scanner = new Scanner(System.in); 
while (scanner.hasNextLine()) 
{ 
    line = scanner.nextLine(); 
    System.out.println(line); 
} 
scanner.close(); 

当我请Standarad输入为:

ab 
cd 
ef 
gh 

输出是:

ab 
cd 
ef 
+0

可能的重复[如何使用Java读取大型文本文件行?](http://stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line- by-line-using-java) –

+1

解释你如何_输入标准输入as_。 –

回答

-1

“scanner.hasNextLine()”。最后一行没有下一行,因此它在打印出ef之前就存在循环。

+0

为什么你认为它退出'while'循环? –

+0

@SotiriosDelimanolis我认为代码实际上工作...自己测试它。 – jstnchng

+0

@jstnchng如果您在输入的末尾添加额外的回车符,它将“工作”(如在,它将打印最后一行)。 OP似乎没有这样做。 –