Java Reader-klasse

Java Reader-klasse

De Reader-klasse in Java is een abstracte klasse voor het lezen van karakterstreams. Zijn subklassen ( Bestandslezer GebufferdeReade ) bieden implementaties waarbij read() de belangrijkste methode is om karakters te lezen.

  • Het implementeert de Readable-interface die de read(CharBuffer cb)-methode definieert.
  • Het implementeert de Closeable-interface die de close()-methode definieert om bronnen vrij te geven.
lezer_Lezer

Verklaring van lezersklasse

Hieronder vindt u de verklaring van de Reader-klasse:

public abstract class Reader implementeert Leesbaar Sluitbaar

Voorbeeld: Lees een tekstbestand teken voor teken met behulp van de Reader-klasse.

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

Uitgang:

Uitvoeruitgang

Opmerking: Om er zeker van te zijn dat het programma correct werkt, maakt u een bestand met de naam example1.txt in de werkmap.

Voeg de volgende inhoud toe aan het bestand of u kunt tekst toevoegen.

Hallo welkom bij Geeks voor Geeks

Sla het bestand op en voer het programma uit. Het programma zal de inhoud van voorbeeld1 lezen en weergeven .txt als uitvoer.

Constructeurs van Reader Class

Er worden twee constructors gebruikt met Java Reader Class, zoals hieronder vermeld:

  • beveiligde lezer(): Creëert een nieuwe karakterstroomlezer waarvan de kritische secties op de lezer zelf worden gesynchroniseerd.
  • beveiligde lezer (objectvergrendeling) : Creëert een nieuwe karakterstroomlezer waarvan de kritieke secties op het gegeven object worden gesynchroniseerd.

Methoden van Java Reader-klasse

Methode Beschrijving
abstracte leegte close() Sluit de stream en maakt bronnen vrij.
ongeldige markering (int readAheadLimit) Markeert de huidige positie in de stream.
Booleaanse markeringOndersteund() Controleert of markeer-/resetbewerkingen worden ondersteund.
int lezen() Leest een enkel teken uit de stream. Geeft -1 terug als het einde is bereikt.
int lezen(char[] cbuf) Leest meerdere tekens in een array.
abstract int read(char[] cbuf int uit int len) Leest een deel van de array, beginnend bij offset uit voor lengte len.
int read(CharBuffer-doel) Leest tekens in een CharBuffer-object.
ongeldig resetten() Reset de stream naar de meest recente markeringspositie.
lange sprong (lange n) Slaat het opgegeven aantal tekens over.

Voorbeeld: Het onderstaande programma demonstreert de werking van verschillende functionaliteiten van de Reader-klasse 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  ();      }   }   

Uitgang:

UitvoerUitvoer

Implementatie van lezersklassen

Enkele implementaties van Reader-klassen in Java worden hieronder vermeld:

  • Gebufferde Reader
  • CharArrayReader
  • FilterLezer
  • InputStreamReader
  • PipedReader
  • StringReader
Quiz maken