Clasa Java Reader

Clasa Java Reader

Clasa Reader în Java este un clasa abstractă pentru citirea fluxurilor de caractere. Subclasele sale ( FileReader BufferedReade ) furnizează implementări cu read() fiind metoda principală de citire a caracterelor.

  • Implementează interfața Readable care definește metoda read(CharBuffer cb).
  • Implementează interfața Closeable care definește metoda close() pentru a elibera resurse.
cititor_Cititor

Declarația Reader Class

Declarația clasei Reader este dată mai jos:

public abstract class Reader implementează Readable Closeable

Exemplu: Citiți un fișier text caracter cu caracter folosind clasa 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  ());      }      }   }   

Ieșire:

Ieșireieșire

Nota: Pentru a vă asigura că programul rulează corect, creați un fișier numit example1.txt în directorul de lucru.

Adăugați următorul conținut la fișier sau puteți adăuga orice text.

Bună, bun venit la Geeks for Geeks

Salvați fișierul și rulați programul. Programul va citi și afișa conținutul exemplului1 .txt ca ieșire.

Constructorii clasei Reader

Există doi constructori utilizați cu Java Reader Class, așa cum este menționat mai jos:

  • Reader protejat(): Creează un nou cititor de caractere ale cărui secțiuni critice se vor sincroniza cu cititorul însuși.
  • Cititor protejat (Blocare obiect) : creează un nou cititor de flux de caractere ale cărui secțiuni critice se vor sincroniza pe obiectul dat.

Metode ale clasei Java Reader

Metodă Descriere
vid abstract close() Închide fluxul și eliberează resurse.
marcare nulă (int readAheadLimit) Marchează poziția curentă în flux.
marca booleană acceptată () Verifică dacă operațiunile de marcare/resetare sunt acceptate.
int read() Citește un singur caracter din flux. Returnează -1 dacă se ajunge la final.
int read(char[] cbuf) Citește mai multe caractere într-o matrice.
abstract int read(char[] cbuf int off int len) Citește o porțiune a matricei începând cu offset off pentru lungimea len.
int read(ținta CharBuffer) Citește caractere într-un obiect CharBuffer.
void reset() Resetează fluxul la cea mai recentă poziție a marcajului.
salt lung (n lung) Omite numărul specificat de caractere.

Exemplu: Programul de mai jos demonstrează funcționarea diferitelor funcționalități ale clasei Reader în 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  ();      }   }   

Ieșire:

IeșireIeșire

Implementarea claselor de cititor

Unele dintre implementările claselor Reader în Java sunt menționate mai jos:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Creați un test