Ввод с клавиатуры

Открыта

— Амиго, настало твоё время — теперь я расскажу про ввод с клавиатуры.

— Для вывода данных на экран мы использовали System.out. Для ввода данных будем использовать  System.in.

— Звучит не сложно.

— Но у System.in есть минус – он позволяет считать с клавиатуры только коды символов. Чтобы обойти эту проблему и считывать большие порции данных за один раз, мы будем использовать более сложную конструкцию:

Пример 1
Ввод строки и числа с клавиатуры
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //читаем строку с клавиатуры
String sAge = bufferedReader.readLine(); //читаем строку с клавиатуры
int nAge = Integer.parseInt(sAge); //преобразовываем строку в число.
2
Задача
Java Syntax,  3 уровень,  7 лекция
Недоступна
Набираем код
Иногда думать не надо, строчить надо! Как ни парадоксально звучит, порой пальцы «запоминают» лучше, чем сознание. Вот почему во время обучения в секретном центре JavaRush вы иногда встречаете задания на набор кода. Набирая код, вы привыкаете к синтаксису и зарабатываете немного материи. А ещё — боретесь с ленью.
Пример 2
Более компактная запись первой части:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Пример 3
Еще более компактная
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

— Вопросы?

— Эээ… Ничего не понятно.

— Чтобы считать строку с клавиатуры, удобнее всего воспользоваться объектом BufferedReader. Но для этого в него нужно передать объект, из которого он будет вычитывать данные – System.in.

— Но System.in и BufferedReader не совместимы друг с другом, поэтому мы используем переходник – еще один объект InputStreamReader.

— Вроде ясно. А что еще за класс Scanner?

— Использовать Scanner довольно удобно, но от этого не очень много пользы. Дело в том, что в будущем (и в учебе, и на работе) ты будешь часто использовать объекты BufferedReader и InputStreamReader и очень-очень редко объект типа Scanner. В данной ситуации он удобен, но в будущем толку от него мало. Так что мы пользоваться им не будем.

— Что-то вроде понятно, но не уверен, что все и правильно.

Комментарии (246)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Николай4 уровень, Новосибирск
13 августа, 08:14
Что бы продолжить обязательно прочтите это: https://javarush.ru/groups/posts/1919-schitihvanie-s-klaviaturih--riderih
Николай4 уровень, Новосибирск
13 августа, 04:48
Рад что Амиго понимает лучше меня)
artemk334 уровень, Коростышев
4 августа, 07:48
на данный момент я прочитал эту лекцию,но ту информацию которая находится в ссылках на Scanner,BufferedReader я не трогал(точнее не разобрался в ней).Я могу понять без неё как делать далее задачи? Сейчас ощущение что нет,я позаглядывал слегка туда,попытался понять,не вышло
Роман10 уровень
23 июля, 18:23
Примеры 2 и 3 собьют толку новичков. Это-же не более компактная запись, это разные подходы! BufferedReader и Scanner это разные сущности. http://qaru.site/questions/10048/scanner-vs-bufferedreader Вот , разбирайтесь.
Вячеслав4 уровень, Самара
10 августа, 19:10
Хороший материал, но глаза сломаешь читать это. Похоже на авто-рерайт статьи. Хорошо бы источник почитать
USE163 уровень, Самара
14 августа, 15:57
Источник стековерфлоу. Qaru тупо переводит вопросы и выдаёт их в таком ужасном виде
Дмитрий8 уровень, Волгоград
17 июля, 12:04
Вот это заморочки, капец, ничего не понял) На плюсах ввёл cin>> и свободен, а тут очень недружественно.
Баходур БК5 уровень, Санкт-Петербург
16 июля, 20:46
Очень интересно и понятно. Класс!
Илиас5 уровень, Москва
9 июля, 14:30
Прочел и понял, что ничего не понял.......
EvGeNbl4 ☭7 уровень, Екатеринбург
5 июля, 19:43
После прочтения этой статьи у меня аж волосы зашевилились от того что я пытался понять как это работает. В итоге обратился к всевышнему "Google" тот немного подумал и выдал мне очень как мне показалось понятное видео. В результате чего я решил помочь таким-же не понимающим. https://www.youtube.com/watch?v=PZa7LEY_7LM ps: Видео созданно одним из учеников JavaRush за что ему ОГРОМНОЕ СПАСИБО!!!
Ceez4 уровень
14 июля, 19:57
Да, видео действительно проливает свет.
Николай4 уровень, Новосибирск
13 августа, 05:11
Про колбасу что то не понял (, мне купить её надо или как?
NikitaMityushnikov3 уровень
5 июля, 02:15
Я один не понимаю, что это и для чего, и как оно работает?!
NikitaMityushnikov3 уровень
4 июля, 13:22
" Чтобы считать строку с клавиатуры, удобнее всего воспользоваться объектом BufferedReader." Что значит считать строку с клавиатуры?!