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 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 :
Ausgabe 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:
Ausgabe Implementierung von Reader-Klassen
Einige der Implementierungen von Reader-Klassen in Java sind unten aufgeführt:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader