Classe di lettura Java

Classe di lettura Java

La classe Reader in Java è un classe astratta per leggere i flussi di caratteri. Le sue sottoclassi ( Lettore di file BufferedReade ) forniscono implementazioni con read() che è il metodo principale per leggere i caratteri.

  • Implementa l'interfaccia Readable che definisce il metodo read(CharBuffer cb).
  • Implementa l'interfaccia Closeable che definisce il metodo close() per rilasciare risorse.
lettore_Lettore

Dichiarazione di Classe Lettore

La dichiarazione della classe Reader è riportata di seguito:

la classe astratta pubblica Reader implementa Readable Closeable

Esempio: Leggere un file di testo carattere per carattere utilizzando la classe 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  ());      }      }   }   

Produzione :

Produzioneproduzione

Nota: Per garantire che il programma venga eseguito correttamente, creare un file denominato esempio1.txt nella directory di lavoro.

Aggiungi il seguente contenuto al file oppure puoi aggiungere qualsiasi testo.

Ciao benvenuto su Geeks for Geeks

Salvare il file ed eseguire il programma. Il programma leggerà e visualizzerà il contenuto dell'esempio1 .txt come uscita.

Costruttori della classe Reader

Esistono due costruttori utilizzati con Java Reader Class come indicato di seguito:

  • Lettore protetto(): Crea un nuovo lettore di flussi di caratteri le cui sezioni critiche verranno sincronizzate sul lettore stesso.
  • Lettore protetto (blocco oggetto) : crea un nuovo lettore di flussi di caratteri le cui sezioni critiche verranno sincronizzate sull'oggetto specificato.

Metodi della classe Java Reader

Metodo Descrizione
vuoto astratto chiudi() Chiude il flusso e rilascia risorse.
void mark(int readAheadLimit) Contrassegna la posizione corrente nel flusso.
contrassegno booleanoSupportato() Controlla se le operazioni di contrassegno/reimpostazione sono supportate.
int leggere() Legge un singolo carattere dallo stream. Restituisce -1 se viene raggiunta la fine.
int read(char[] cbuf) Legge più caratteri in un array.
abstract int read(char[] cbuf int off int len) Legge una porzione dell'array a partire da offset off per la lunghezza len.
int read(destinazione CharBuffer) Legge i caratteri in un oggetto CharBuffer.
ripristino nullo() Reimposta il flusso alla posizione del contrassegno più recente.
salto lungo(lungo n) Salta il numero di caratteri specificato.

Esempio: Il programma seguente dimostra il funzionamento di varie funzionalità della classe Reader in 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  ();      }   }   

Produzione:

ProduzioneProduzione

Implementazione di classi di lettori

Alcune delle implementazioni delle classi Reader in Java sono menzionate di seguito:

  • BufferedReader
  • CharArrayReader
  • Lettore di filtri
  • InputStreamReader
  • PipedReader
  • StringReader
Crea quiz