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 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:
uitgang 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:
Uitvoer Implementatie van lezersklassen
Enkele implementaties van Reader-klassen in Java worden hieronder vermeld:
- Gebufferde Reader
- CharArrayReader
- FilterLezer
- InputStreamReader
- PipedReader
- StringReader