Java-läsarklass

Java-läsarklass

Reader-klassen i Java är en abstrakt klass för att läsa teckenströmmar. Dess underklasser ( FileReader Bufferad Läs ) tillhandahåller implementeringar med read() som huvudmetoden för att läsa tecken.

  • Den implementerar det läsbara gränssnittet som definierar read(CharBuffer cb)-metoden.
  • Den implementerar Closeable-gränssnittet som definierar close()-metoden för att frigöra resurser.
läsare_Läsare

Deklaration av läsarklass

Deklaration av läsarklass ges nedan:

public abstract class Reader implementerar Läsbar Stängbar

Exempel: Läs en textfil tecken för tecken med klassen 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  ());      }      }   }   

Utgång:

Produktionproduktion

Notera: För att säkerställa att programmet körs korrekt skapa en fil med namnet example1.txt i arbetskatalogen.

Lägg till följande innehåll i filen eller så kan du lägga till vilken text som helst.

Hej välkommen till Geeks for Geeks

Spara filen och kör programmet. Programmet kommer att läsa och visa innehållet i exempel1 .txt som utgång.

Konstruktörer av läsarklass

Det finns två konstruktörer som används med Java Reader Class som nämns nedan:

  • skyddad läsare(): Skapar en ny teckenströmsläsare vars kritiska avsnitt kommer att synkroniseras på själva läsaren.
  • skyddad läsare (objektlås) : Skapar en ny teckenströmsläsare vars kritiska avsnitt kommer att synkroniseras på det givna objektet.

Metoder för Java Reader Class

Metod Beskrivning
abstrakt void close() Stänger strömmen och släpper resurser.
void mark (int readAheadLimit) Markerar den aktuella positionen i strömmen.
boolean markSupported() Kontrollerar om markerings-/återställningsåtgärder stöds.
int read() Läser ett enstaka tecken från strömmen. Returnerar -1 om slutet nås.
int read(char[] cbuf) Läser flera tecken i en array.
abstrakt int read(char[] cbuf int off int len) Läser en del av arrayen med start vid offset off för längd len.
int read(CharBuffer-mål) Läser tecken i ett CharBuffer-objekt.
void reset() Återställer strömmen till den senaste markeringspositionen.
långt hoppa (långt n) Hoppa över det angivna antalet tecken.

Exempel: Nedanstående program visar hur olika funktioner i Reader-klassen fungerar i 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  ();      }   }   

Produktion:

ProduktionProduktion

Genomförande av läsarklasser

Några av implementeringarna av Reader-klasser i Java nämns nedan:

  • Bufferad Reader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Skapa frågesport