Класс ArrayList, организация простейшего текстового меню. Габрельян Б.В. - 6 стр.

UptoLike

Составители: 

int code = 0;
try {
code = Syatem.in.read();
}
catch(java.io.IOException e) {}
Вы знаете, что ввод с клавиатуры буферизован, т.е. вводимые символы
помещаются в буфер в ОЗУ, а программа считывает их из этого буфера.
Предположим, что в буфер помещено 10 символов, а считано лишь 5. Здесь
не возникает проблем. Но, если вновь обратиться к функции чтения симво-
лов, введенных
с помощью клавиатуры (например, read()), то функция вернет
не вновь введенный символ, а тот, что остался в буфере. Поэтому стандарт-
ный прием при вводе данных со стандартного устройства - это очистка буфе-
ра и, лишь затем, запрос на чтение символов. Класс InputStream содержит два
метода: available(), возвращающий количество байт, содержащихся на данный
момент в буфере
, и skip(), удаляющий указанное количество байт из буфера.
Итог:
int code = 0;
try {
System.in.skip( System.in.available() ); // очистить буфер клавиатуры
code = System.in.read(); // получить код нажатой клавиши
}
catch(java.io.IOException e) {}
Теперь можно написать собственный метод, позволяющий вводить с
клавиатуры целые числа из диапазона, например, от -99 999 999 до 999 999
999. Для хранения таких чисел достаточно иметь массив из девяти байт. Кро-
ме того, удобно
использовать коды символов, '0' - 48, '1' - 49, …, '9' - 57.
        int code = 0;
        try {
                code = Syatem.in.read();
        }
        catch(java.io.IOException e) {}
        Вы знаете, что ввод с клавиатуры буферизован, т.е. вводимые символы
помещаются в буфер в ОЗУ, а программа считывает их из этого буфера.
Предположим, что в буфер помещено 10 символов, а считано лишь 5. Здесь
не возникает проблем. Но, если вновь обратиться к функции чтения симво-
лов, введенных с помощью клавиатуры (например, read()), то функция вернет
не вновь введенный символ, а тот, что остался в буфере. Поэтому стандарт-
ный прием при вводе данных со стандартного устройства - это очистка буфе-
ра и, лишь затем, запрос на чтение символов. Класс InputStream содержит два
метода: available(), возвращающий количество байт, содержащихся на данный
момент в буфере, и skip(), удаляющий указанное количество байт из буфера.
Итог:
        int code = 0;
        try {
        System.in.skip( System.in.available() );   // очистить буфер клавиатуры
        code = System.in.read();             // получить код нажатой клавиши
        }
        catch(java.io.IOException e) {}
        Теперь можно написать собственный метод, позволяющий вводить с
клавиатуры целые числа из диапазона, например, от -99 999 999 до 999 999
999. Для хранения таких чисел достаточно иметь массив из девяти байт. Кро-
ме того, удобно использовать коды символов, '0' - 48, '1' - 49, …, '9' - 57.