Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какая разница между Scanner и BufferedReader? 
:(
    Опции темы
akvarel
Дата 26.8.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.8.2011

Репутация: нет
Всего: нет



Я нигде не могу найти лёгких(я начинающий) и разъясняющих разницу примеров.

Вот что я вычитала и поняла:
Scanner разделяет текст на отрывки слов , распознавая пробел. Он имеет так же методы nextInt, nextDouble... ,чтобы позволяет пропускать ненужные символы. Сканнер не синхронихирован-небезопасный.Он так же не имеет exeptions, если,например, файл не найден.

BufferedReader читает длиные файлы быстрее, синхронизирован, имеет exeption, и с ним можно читать каждую букву в отдельности.

Но при каких обстоятельствах вы будете использовать Scanner или BufferedReader? 

Спасибо

Это сообщение отредактировал(а) akvarel - 26.8.2011, 21:38
PM MAIL   Вверх
priam220
Дата 28.8.2011, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



Отличный ответ:
Цитата

  A BufferedReader is a simple class meant to efficiently read from the underling stream. Generally, each read request made of a Reader like a FileReader causes a corresponding read request to be made to underlying stream. Each invocation of read() or readLine() could cause bytes to be read from the file, converted into characters, and then returned, which can be very inefficient. Efficiency is improved appreciably if a Reader is warped in a BufferedReader.
   BufferedReader is synchronized, so read operations on a BufferedReader can safely be done from multiple threads.

   A scanner on the other hand has a lot more cheese built into it; it can do all that a BufferedReader can do and at the same level of efficiency as well. However, in addition a Scanner can parse the underlying stream for primitive types and strings using regular expressions. It can also tokenize the underlying stream with the delimiter of your choice. It can also do forward scanning of the underlying stream disregarding the delimiter!
   A scanner however is not thread safe, it has to be externally synchronized.

  The choice of using a BufferedReader or a Scanner depends on the code you are writing, if you are writing a simple log reader Buffered reader is adequate. However if you are writing an XML parser Scanner is the more natural choice. 

  Even while reading the input, if want to accept user input line by line and say just add it to a file, a BufferedReader is good enough. On the other hand if you want to accept user input as a command with multiple options, and then intend to perform different operations based on the command and options specified, a Scanner will suit better.  

 

Это сообщение отредактировал(а) priam220 - 28.8.2011, 00:28
PM MAIL   Вверх
aleksandy
Дата 29.8.2011, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



Цитата(akvarel @  26.8.2011,  21:38 Найти цитируемый пост)
Но при каких обстоятельствах вы будете использовать Scanner или BufferedReader? 

Тынц
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.