Java Reader-Klasse

Java Reader-Klasse

Die Reader-Klasse in Java ist eine abstrakte Klasse zum Lesen von Zeichenströmen. Seine Unterklassen ( FileReader BufferedReade ) stellen Implementierungen bereit, wobei read() die Hauptmethode zum Lesen von Zeichen ist.

  • Es implementiert die Readable-Schnittstelle, die die Methode read(CharBuffer cb) definiert.
  • Es implementiert die Closeable-Schnittstelle, die die Methode close() zum Freigeben von Ressourcen definiert.
Leser_Leser

Erklärung der Leserklasse

Die Deklaration der Reader-Klasse ist unten angegeben:

Die öffentliche abstrakte Klasse Reader implementiert Readable Closeable

Beispiel: Lesen Sie eine Textdatei Zeichen für Zeichen mit der 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  ());      }      }   }   

Ausgabe :

AusgabeAusgabe

Notiz: Um sicherzustellen, dass das Programm ordnungsgemäß ausgeführt wird, erstellen Sie eine Datei mit dem Namen example1.txt im Arbeitsverzeichnis.

Fügen Sie der Datei den folgenden Inhalt hinzu oder fügen Sie einen beliebigen Text hinzu.

Hallo, willkommen bei Geeks für Geeks

Speichern Sie die Datei und führen Sie das Programm aus. Das Programm liest den Inhalt von Beispiel1 und zeigt ihn an .txt als Ausgabe.

Konstrukteure der Reader-Klasse

Es gibt zwei Konstruktoren, die mit der Java Reader-Klasse verwendet werden, wie unten erwähnt:

  • protected Reader(): Erstellt einen neuen Zeichenstrom-Reader, dessen kritische Abschnitte auf dem Reader selbst synchronisiert werden.
  • geschützter Reader (Objektsperre) : Erstellt einen neuen Zeichenstrom-Reader, dessen kritische Abschnitte mit dem angegebenen Objekt synchronisiert werden.

Methoden der Java Reader-Klasse

Verfahren Beschreibung
abstrakte Leere close() Schließt den Stream und gibt Ressourcen frei.
void mark(int readAheadLimit) Markiert die aktuelle Position im Stream.
boolean markSupported() Überprüft, ob Markierungs-/Reset-Vorgänge unterstützt werden.
int read() Liest ein einzelnes Zeichen aus dem Stream. Gibt -1 zurück, wenn das Ende erreicht ist.
int read(char[] cbuf) Liest mehrere Zeichen in ein Array.
abstract int read(char[] cbuf int off int len) Liest einen Teil des Arrays beginnend bei Offset Off für die Länge len.
int read(CharBuffer-Ziel) Liest Zeichen in ein CharBuffer-Objekt.
void reset() Setzt den Stream auf die letzte Markierungsposition zurück.
langer Sprung (langes n) Überspringt die angegebene Anzahl von Zeichen.

Beispiel: Das folgende Programm demonstriert die Funktionsweise verschiedener Funktionalitäten der 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  ();      }   }   

Ausgabe:

AusgabeAusgabe

Implementierung von Reader-Klassen

Einige der Implementierungen von Reader-Klassen in Java sind unten aufgeführt:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Quiz erstellen