Klasa czytnika Java

Klasa czytnika Java

Klasa Reader w Javie to klasa abstrakcyjna do odczytywania strumieni znaków. Jego podklasy ( Czytnik plików Buforowany odczyt ) zapewniają implementacje, w których read() jest główną metodą odczytu znaków.

  • Implementuje interfejs Readable, który definiuje metodę read(CharBuffer cb).
  • Implementuje interfejs Closeable, który definiuje metodę close() w celu zwolnienia zasobów.
czytelnik_Czytelnik

Deklaracja klasy czytelnika

Deklarację klasy Reader podano poniżej:

publiczna klasa abstrakcyjna Reader implementuje Readable Closeable

Przykład: Czytaj plik tekstowy znak po znaku, korzystając z klasy 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  ());      }      }   }   

Wyjście :

Wyjściewyjście

Notatka: Aby mieć pewność, że program działa poprawnie, utwórz plik o nazwie example1.txt w katalogu roboczym.

Dodaj następującą treść do pliku lub możesz dodać dowolny tekst.

Witamy w Geeks for Geeks

Zapisz plik i uruchom program. Program odczyta i wyświetli zawartość przykładu 1 .txt jako wyjście.

Konstruktorzy klasy Reader

Istnieją dwa konstruktory używane z klasą Java Reader, jak wspomniano poniżej:

  • chroniony czytnik(): Tworzy nowy czytnik strumienia znaków, którego sekcje krytyczne zostaną zsynchronizowane w samym czytniku.
  • chroniony czytnik (blokada obiektu) : Tworzy nowy czytnik strumienia znaków, którego sekcje krytyczne zostaną zsynchronizowane z danym obiektem.

Metody klasy czytnika Java

Metoda Opis
abstrakcyjna pustka zamknij() Zamyka strumień i zwalnia zasoby.
pusty znak (int readAheadLimit) Oznacza bieżącą pozycję w strumieniu.
znak logicznySupported() Sprawdza, czy obsługiwane są operacje zaznaczania/resetowania.
int czytać() Odczytuje pojedynczy znak ze strumienia. Zwraca -1, jeśli osiągnięto koniec.
int odczyt(char[] cbuf) Odczytuje wiele znaków do tablicy.
streszczenie int read(char[] cbuf int off int len) Odczytuje część tablicy, zaczynając od offsetu off dla długości len.
int odczyt (cel CharBuffer) Odczytuje znaki do obiektu CharBuffer.
nieważne resetowanie() Resetuje strumień do ostatniej pozycji znacznika.
długi przeskok (długi n) Pomija określoną liczbę znaków.

Przykład: Poniższy program demonstruje działanie różnych funkcjonalności klasy Reader w Javie.

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  ();      }   }   

Wyjście:

WyjścieWyjście

Implementacja klas czytników

Poniżej wymieniono niektóre implementacje klas Reader w Javie:

  • Buforowany czytnik
  • Czytnik CharArray
  • Czytnik filtrów
  • Czytnik strumienia wejściowego
  • Czytnik Piped
  • Czytnik ciągów
Utwórz quiz