Java-leserklasse
Leser-klassen i Java er en abstrakt klasse for å lese karakterstrømmer. dens underklasser ( FileReader BufretLes ) gir implementeringer med read() som hovedmetoden for å lese tegn.
- Den implementerer det lesbare grensesnittet som definerer read(CharBuffer cb)-metoden.
- Den implementerer Closeable-grensesnittet som definerer close()-metoden for å frigjøre ressurser.
Leser Erklæring av leserklasse
Erklæring om leserklasse er gitt nedenfor:
offentlig abstrakt klasse Leser implementerer Lesbar Lukkbar
Eksempel: Les en tekstfil tegn for tegn ved å bruke 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 ()); } } }
Utgang:
produksjon Note: For å sikre at programmet kjører riktig, oppretter du en fil som heter example1.txt i arbeidskatalogen.
Legg til følgende innhold i filen, eller du kan legge til hvilken som helst tekst.
Hei velkommen til Geeks for Geeks
Lagre filen og kjør programmet. Programmet vil lese og vise innholdet i eksempel1 .txt som utgang.
Konstruktører av leserklassen
Det er to konstruktører som brukes med Java Reader Class som nevnt nedenfor:
- beskyttet leser(): Oppretter en ny karakterstrømleser hvis kritiske deler vil synkroniseres på selve leseren.
- beskyttet leser (objektlås) : Oppretter en ny karakterstrømleser hvis kritiske seksjoner vil synkroniseres på det gitte objektet.
Metoder for Java Reader Class
| Metode | Beskrivelse |
|---|---|
| abstrakt void close() | Lukker strømmen og frigjør ressurser. |
| void mark (int readAheadLimit) | Markerer gjeldende posisjon i strømmen. |
| boolesk markSupported() | Sjekker om markerings-/tilbakestillingsoperasjoner støttes. |
| int read() | Leser et enkelt tegn fra strømmen. Returnerer -1 hvis slutten er nådd. |
| int read(char[] cbuf) | Leser flere tegn i en matrise. |
| abstrakt int read(char[] cbuf int off int len) | Leser en del av matrisen som starter med offset off for lengde len. |
| int read(CharBuffer-mål) | Leser tegn inn i et CharBuffer-objekt. |
| void reset() | Tilbakestiller strømmen til den siste merkeposisjonen. |
| langt hopp (langt n) | Hopper over det angitte antallet tegn. |
Eksempel: Programmet nedenfor viser hvordan ulike funksjoner 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 (); } }
Produksjon:
Produksjon Gjennomføring av Leserklasser
Noen av implementeringene av Reader-klasser i Java er nevnt nedenfor:
- Bufret Reader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader