Java Reader Class

Java Reader Class

Клас Reader в Java є абстрактний клас для читання потоків символів. Його підкласи ( FileReader BufferedReade ) забезпечують реалізації з read() як основним методом читання символів.

  • Він реалізує інтерфейс Readable, який визначає метод read(CharBuffer cb).
  • Він реалізує інтерфейс Closeable, який визначає метод close() для звільнення ресурсів.
читач_читач

Оголошення класу читачів

Оголошення класу Reader наведено нижче:

відкритий абстрактний клас Reader реалізує Readable Closeable

приклад: Прочитайте текстовий файл символ за символом за допомогою класу Reader.

Java
   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      {      try     {          // Create a FileReader object which is a subclass of Reader      Reader     r     =     new     FileReader  (  'example1.txt'  );      // Read one character at a time from the file      int     data     =     r  .  read  ();      while     (  data     !=     -  1  )     {          // Convert the int to char and print      System  .  out  .  print  ((  char  )  data  );      data     =     r  .  read  ();      }      // Close the reader      r  .  close  ();      }      catch     (  Exception     ex  )     {      System  .  out  .  println  (  'An error occurred: '     +     ex  .  getMessage  ());      }      }   }   

Вихід:

Вихідвихід

Примітка: Щоб забезпечити правильну роботу програми, створіть файл під назвою example1.txt у робочому каталозі.

Додайте наступний вміст до файлу або будь-який текст.

Привіт, ласкаво просимо до Geeks for Geeks

Збережіть файл і запустіть програму. Програма прочитає та відобразить вміст example1 .txt як вихід.

Конструктори класу Reader

Існує два конструктори, які використовуються з Java Reader Class, як зазначено нижче:

  • захищений Reader(): Створює новий зчитувач потоку символів, критичні розділи якого синхронізуватимуться на самому зчитувачі.
  • захищений Reader (блокування об'єктів) : створює новий засіб читання потоку символів, критичні розділи якого синхронізуватимуться на заданому об’єкті.

Методи Java Reader Class

метод опис
абстрактна порожнеча close() Закриває потік і звільняє ресурси.
void mark(int readAheadLimit) Позначає поточну позицію в потоці.
логічне значення markSupported() Перевіряє, чи підтримуються операції позначення/скидання.
int read() Читає один символ із потоку. Повертає -1, якщо досягнуто кінця.
int read(char[] cbuf) Зчитує кілька символів у масив.
abstract int read(char[] cbuf int off int len) Зчитує частину масиву, починаючи зі зсуву off для довжини len.
int read(CharBuffer target) Читає символи в об’єкт CharBuffer.
void reset() Скидає потік до останньої позиції позначки.
довгий пропуск (довгий n) Пропускає вказану кількість символів.

приклад: Наведена нижче програма демонструє роботу різних функцій класу Reader у Java.

Java
   import     java.io.*  ;   import     java.nio.CharBuffer  ;   import     java.util.Arrays  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      throws     IOException      {      // Open a file reader      Reader     r     =     new     FileReader  (  'file.txt'  );      PrintStream     out     =     System  .  out  ;      // Create a character array and CharBuffer      char  []     buffer     =     new     char  [  10  ]  ;      CharBuffer     charBuffer     =     CharBuffer  .  wrap  (  buffer  );      // Check if the reader supports marking      if     (  r  .  markSupported  ())     {      r  .  mark  (  100  );     // Mark the current position      out  .  println  (  'mark method is supported'  );      }      // Skip 5 characters in the stream      r  .  skip  (  5  );      // Check if the stream is ready to read      if     (  r  .  ready  ())     {      // Read 10 characters into the buffer      r  .  read  (  buffer       0       10  );      out  .  println  (  'Buffer after reading 10 chars: '      +     Arrays  .  toString  (  buffer  ));      // Read characters into the CharBuffer      r  .  read  (  charBuffer  );      out  .  println  (      'CharBuffer contents: '      +     Arrays  .  toString  (  charBuffer  .  array  ()));      // Read a single character      out  .  println  (  'Next character: '      +     (  char  )  r  .  read  ());      }      // Close the reader      r  .  close  ();      }   }   

Вихід:

ВихідВихід

Проведення читацьких занять

Деякі з реалізацій класів Reader у Java згадуються нижче:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Створіть вікторину