Java-læserklasse
Læserklassen i Java er en abstrakt klasse til læsning af karakterstrømme. dens underklasser ( Fillæser Bufret Læs ) leverer implementeringer med read() som hovedmetoden til at læse tegn.
- Den implementerer den læsbare grænseflade, der definerer read(CharBuffer cb)-metoden.
- Den implementerer Closeable-grænsefladen, der definerer close()-metoden til at frigive ressourcer.
Læser Erklæring af læserklasse
Erklæring om læserklasse er angivet nedenfor:
offentlig abstrakt klasse Læser implementerer Læsbar Lukbar
Eksempel: Læs en tekstfil tegn for tegn ved hjælp af Reader-klassen.
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 ()); } } }
Output:
produktion Note: For at sikre at programmet kører korrekt skal du oprette en fil med navnet example1.txt i arbejdsmappen.
Tilføj følgende indhold til filen, eller du kan tilføje enhver tekst.
Hej velkommen til Geeks for Geeks
Gem filen og kør programmet. Programmet vil læse og vise indholdet af eksempel1 .txt som output.
Konstruktører af læserklasse
Der er to konstruktører brugt med Java Reader Class som nævnt nedenfor:
- beskyttet læser(): Opretter en ny karakterstrømlæser, hvis kritiske sektioner synkroniseres på selve læseren.
- beskyttet læser (objektlås) : Opretter en ny karakterstrømlæser, hvis kritiske sektioner synkroniseres på det givne objekt.
Metoder til Java Reader Class
| Metode | Beskrivelse |
|---|---|
| abstrakt void close() | Lukker strømmen og frigiver ressourcer. |
| void mark (int readAheadLimit) | Markerer den aktuelle position i strømmen. |
| boolesk markSupported() | Kontrollerer, om markerings-/nulstillingshandlinger understøttes. |
| int read() | Læser et enkelt tegn fra streamen. Returnerer -1, hvis slutningen er nået. |
| int read(char[] cbuf) | Læser flere tegn ind i et array. |
| abstrakt int read(char[] cbuf int off int len) | Læser en del af arrayet, der starter ved offset off for længden len. |
| int read(CharBuffer-mål) | Læser tegn ind i et CharBuffer-objekt. |
| void reset() | Nulstiller streamen til den seneste markeringsposition. |
| langt overspring (langt n) | Springer det angivne antal tegn over. |
Eksempel: Nedenstående program demonstrerer, hvordan forskellige funktioner i Reader-klassen fungerer 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:
Produktion Gennemførelse af læserklasser
Nogle af implementeringerne af Reader-klasser i Java er nævnt nedenfor:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader