Java Reader Class

Java Reader Class

Klasa Reader u Javi je apstraktna klasa za čitanje tokova znakova. Njegove podklase ( FileReader BufferedReade ) pružaju implementacije s read() kao glavnom metodom za čitanje znakova.

  • Implementira Readable sučelje koje definira metodu read(CharBuffer cb).
  • Implementira Closeable sučelje koje definira close() metodu za oslobađanje resursa.
čitač_Čitač

Izjava o čitateljskoj klasi

Deklaracija klase Reader data je u nastavku:

javna apstraktna klasa Reader implementira Readable Closeable

Primjer: Čitanje tekstualne datoteke znak po znak pomoću klase 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  ());      }      }   }   

Izlaz:

Izlazizlaz

Bilješka: Kako biste osigurali da program ispravno radi, kreirajte datoteku pod nazivom example1.txt u radnom direktoriju.

Dodajte sljedeći sadržaj u datoteku ili možete dodati bilo koji tekst.

Pozdrav, dobrodošli u Geeks for Geeks

Spremite datoteku i pokrenite program. Program će pročitati i prikazati sadržaj primjera1 .txt kao izlaz.

Konstruktori Reader klase

Postoje dva konstruktora koji se koriste s klasom Java Reader kao što je spomenuto u nastavku:

  • zaštićeni čitač(): Stvara novi čitač toka znakova čiji će se kritični dijelovi sinkronizirati na samom čitaču.
  • zaštićeni čitač (zaključavanje objekta) : Stvara novi čitač toka znakova čiji će se kritični odjeljci sinkronizirati na danom objektu.

Metode Java Reader Class

metoda Opis
apstraktna praznina zatvori() Zatvara tok i oslobađa resurse.
void oznaka (int readAheadLimit) Označava trenutnu poziciju u toku.
boolean markSupported() Provjerava jesu li podržane operacije označavanja/poništavanja.
int čitanje() Čita jedan znak iz toka. Vraća -1 ako se dosegne kraj.
int read(char[] cbuf) Čita više znakova u polje.
abstract int read(char[] cbuf int off int len) Čita dio niza počevši od pomaka za duljinu len.
int read(CharBuffer target) Čita znakove u objekt CharBuffer.
void reset() Ponovno postavlja tok na posljednju poziciju oznake.
dugo preskakanje (dugo n) Preskače navedeni broj znakova.

Primjer: Donji program demonstrira rad različitih funkcionalnosti klase Reader u Javi.

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

Izlaz:

IzlazIzlaz

Provedba nastave lektire

Neke od implementacija Reader klasa u Javi navedene su u nastavku:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • Čitač nizova
Napravi kviz