Вывод значения окончания потока

Антон Киструга

Друзья, всем привет!

В книге сказано, что в случае считывания данных в консоли с клавиатуры результатом нажатия клавиши Enter является по сути три вещи: 1) Метод read() возвращает символ переноса коретки, 2) Метод read() возвращает символ перевода строки, 3) метод read() возвращает значение -1.

В связи с этим вопрос:

Почему данный код не приводит к выводу на экран надписи "Есть конец потока" при вводе с клавиатуры последовательности 123?
Кстати, если буду отлавливать '\n' вместо -1, то это видно.

import java.io.*;
class ReadBytes {
public static void main (String args[])
throws IOException
{
byte data[] = new byte[10];

    System.out.println("Введите символы: ");
    System.in.read(data);
    System.out.print("Вы ввели: ");
    for (int i = 0; i < data.length; i++) {
        if (data[i] == -1) System.out.println("Есть конец потока");
        System.out.print((char) data[i]);
    }           
}

}

1 чел.