Рубрики
Без рубрики

Буферизатор Java

Java BufferedReader, пример BufferedReader, Пример Java BufferedReader, метод строки чтения BufferedReader, BufferedReader против сканера, методы и конструкторы классов Java BufferedReader, метод чтения BufferedReader, готовый и пропущенный пример кода метода.

Автор оригинала: Pankaj Kumar.

Класс Java BufferedReader является частью java.io посылка.

BufferedReader является подклассом класса java.io.Reader .

Буферизатор Java

  • BufferedReader считывает текст из потока ввода символов, буферизуя символы таким образом, чтобы обеспечить эффективное чтение символов, массивов и строк.
  • Размер буфера может быть указан или может использоваться размер по умолчанию. Значение по умолчанию достаточно велико для большинства целей.
  • По сравнению с FileReader , BufferedReader считывает относительно большие фрагменты данных из файла сразу и сохраняет эти данные в буфере. Когда вы запрашиваете следующий символ или строку данных, они извлекаются из буфера, что сокращает количество операций чтения файлов, требующих много времени.
  • Как правило, каждый запрос на чтение, выполняемый Считывателем, вызывает соответствующий запрос на чтение базового символьного или байтового потока. Поэтому рекомендуется обернуть BufferedReader вокруг любого считывателя, операции read() которого могут быть дорогостоящими, например, FileReader и InputStreamReader . Например;

    Приведенный выше код будет буферизировать входные данные из указанного файла. Без буферизации каждый вызов read() или readLine() может привести к считыванию байтов из файла, преобразованию их в символы и последующему возвращению, что может быть очень неэффективным.

Конструкторы буферизатора Java

  1. BufferedReader(Reader in) : Создает поток ввода символов буферизации, который использует входной буфер размера по умолчанию с указанным объектом чтения.
  2. BufferedReader(Reader in, int sz) : Создает поток ввода символов буферизации, который использует входной буфер указанного размера с указанным объектом чтения.

Пример буферизатора Java

Давайте рассмотрим важные методы класса BufferedReader.

  1. read() : Этот метод считывает один символ и возвращает символ в виде целого числа в диапазоне от 0 до 65535 (0x00-0xffff) или -1, если достигнут конец потока.

    BufferedReader реализует автоклавируемый интерфейс, поэтому мы можем использовать попробовать с ресурсом при использовании класса BufferedReader.

    Давайте рассмотрим приведенный ниже пример программы.

  2. read(char[] cbuf, int off, int len) : Этот метод считывает символ в указанный массив. Он пытается прочитать как можно больше символов, многократно вызывая метод чтения базового потока . Это повторное чтение продолжается до тех пор, пока одно из следующих условий не станет истинным:

    1. Было прочитано указанное количество символов
    2. Метод read() базового потока возвращает значение -1, указывающее конец файла
    3. Метод ready() базового потока возвращает false, указывая, что дальнейшие запросы на ввод будут заблокированы.

    Если первое чтение в базовом потоке возвращает -1, чтобы указать конец файла, то этот метод возвращает -1. В противном случае этот метод возвращает количество фактически прочитанных символов.

  3. readLine() : Этот метод считывает строку текста. Строка считается завершенной любым из ввода строки (‘\n’), возврата каретки (‘\r’) или возврата каретки, за которым немедленно следует ввод строки, и она возвращает строку, содержащую содержимое строки, не включая символы окончания строки, или значение null, если достигнут конец потока.

  4. ready() : Этот метод проверяет, готов ли этот поток к чтению. Буферизованный поток символов готов, если буфер не пуст, или если базовый поток символов готов, и он возвращает значение true, если следующий read() гарантированно не блокируется для ввода, иначе возвращает значение false. Обратите внимание, что возврат false не гарантирует, что следующее чтение будет заблокировано.

  5. пропустить(длинный n) : Этот метод пропускает указанный числовой символ и возвращает количество фактически пропущенных символов. Это вызовет исключение IllegalArgumentException , если n отрицательно.

    Также проверьте java чтение текстового файла для получения дополнительной информации о том, как читать текстовый файл на java.

Буферизатор против сканера

  1. BufferedReader синхронизируется, в то время как Сканер не синхронизируется.
  2. BufferedReader имеет буфер большого размера (8 КБ байтового буфера), в то время как сканер имеет небольшой буфер (1 КБ символьного буфера).
  3. BufferedReader работает быстрее по сравнению со сканером.
  4. Сканер анализирует маркер из содержимого потока, в то время как BufferedReader считывает только поток.

Это все для Java BufferedReader, я надеюсь, что здесь не было пропущено ничего важного.

Ссылка: Javadoc