Класс Java.io.FilterReader в Java

Опубликовано: 15 Февраля, 2022

Абстрактный класс для чтения отфильтрованных символьных потоков. Сам абстрактный класс FilterReader предоставляет методы по умолчанию, которые передают все запросы содержащемуся потоку. Подклассы FilterReader должны переопределять некоторые из этих методов, а также могут предоставлять дополнительные методы и поля.
Конструктор:

  • protected FilterReader (Reader in) : создает новый отфильтрованный читатель.

Методы:

  • void close (): закрывает поток и освобождает все связанные с ним системные ресурсы. после закрытия потока дальнейшие вызовы read (), ready (), mark (), reset () или skip () вызовут исключение IOException . Закрытие ранее закрытого потока не имеет никакого эффекта.
     Синтаксис: public void close ()
               выбрасывает IOException
    Броски:
    IOException
  • void mark (int readAheadLimit): отмечает текущую позицию в потоке.
     Синтаксис: общедоступная метка недействительности (int readAheadLimit)
              выбрасывает IOException
    Параметры:
    readAheadLimit - ограничение на количество символов, которые могут быть прочитаны 
    при этом все еще сохраняя отметку. Прочитав столько символов,
     попытка сбросить поток может потерпеть неудачу.
    Броски:
    IOException
  • boolean markSupported (): Сообщает, поддерживает ли этот поток операцию mark ().
     Синтаксис: public boolean markSupported ()
    Возврат:
    Значение true тогда и только тогда, когда этот поток поддерживает операцию отметки.
  • int read (): читает один символ.
     Синтаксис: public int read ()
             выбрасывает IOException
    Возврат:
    Читаемый символ как целое число в диапазоне от 0 до 65535 (0x00-0xffff), 
    или -1, если достигнут конец потока
    Броски:
    IOException
  • int read (char [] cbuf, int off, int len): считывает символы в часть массива.
     Синтаксис: public int read (char [] cbuf,
           int off,
           int len)
             выбрасывает IOException
    Параметры:
    cbuf - Целевой буфер
    off - смещение, с которого начинается сохранение символов
    len - Максимальное количество символов для чтения
    Возврат:
    Количество прочитанных символов или -1, если достигнут конец потока.
    Броски:
    IOException
  • boolean ready (): сообщает, готов ли этот поток к чтению.
     Синтаксис: public boolean ready ()
                  выбрасывает IOException
    Возврат:
    Истинно, если следующее read () гарантированно не заблокируется для ввода, 
    в противном случае - ложь. Обратите внимание, что возврат false не гарантирует
    что следующее чтение будет заблокировано.
    Броски:
    IOException
  • void reset (): сбрасывает поток.
     Синтаксис: public void reset ()
               выбрасывает IOException
    Броски:
    IOException
  • long skip (long n): пропускает символы.
     Синтаксис: public long skip (long n)
              выбрасывает IOException
    Параметры:
    n - количество символов, которые нужно пропустить
    Возврат:
    Количество фактически пропущенных символов
    Броски:
    IOException

Program :

//Java program illustrating FilterReader class methods
  
import java.io.*;
class FilterReaderdemo
{
    public static void main(String[] args) throws IOException
    {
        Reader r = new StringReader("GeeksforGeeks");
        FilterReader fr = new FilterReader(r) 
        {
        };
        char ch[] = new char[8];
          
        //illustrating markSupported()
        if(fr.markSupported())
        {
            //illustrating mark() method
            System.out.println("mark method is supported");
            fr.mark(100);
        }
          
        //illustrating skip() method
        fr.skip(5);
          
        //illustrating ready()
        if(fr.ready())
        {
            //illustrating read(char[] cbuff,int off,int len)
            fr.read(ch);
            for (int i = 0; i < 8; i++) 
            {
                System.out.print(ch[i]);
            }
              
            //illustrating reset()
            fr.reset();
            for (int i = 0; i <5 ; i++)
            {
                //illustrating read()
                System.out.print((char)fr.read());
            }
        }
          
        //closing the stream
        fr.close();
    }
}

Выход :

 метка метод поддерживается
forGeeksGeeks

Автор статьи - Нишант Шарма . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .