2015-06-29 3 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

Объясните, как вы вставляете вход Standarad as_. –

ответ

-1

"scanner.hasNextLine()". Последняя строка не имеет следующей строки, поэтому существует цикл, прежде чем он выдает ef.

+0

Почему, по вашему мнению, он выходит из цикла while? –

+0

@SotiriosDelimanolis Я думаю, что код работает на самом деле ... проверял его сам. – jstnchng

+0

@jstnchng Он будет «работать» (как в случае, он будет печатать последнюю строку), если вы добавите дополнительный возврат каретки в конец ввода. OP, похоже, не делает этого. –

Смежные вопросы