Java Reader Class
Razred Reader v Javi je abstraktni razred za branje tokov znakov. Njegovi podrazredi ( FileReader BufferedReade ) zagotavlja implementacije z read() kot glavno metodo za branje znakov.
- Implementira vmesnik Readable, ki definira metodo read(CharBuffer cb).
- Izvaja vmesnik Closeable, ki definira metodo close() za sprostitev virov.
Bralec Izjava o razredu bralcev
Deklaracija razreda Reader je podana spodaj:
javni abstraktni razred Reader implementira Readable Closeable
primer: Preberite besedilno datoteko znak za znakom z uporabo razreda Reader.
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 ()); } } }
Izhod:
izhod Opomba: Da zagotovite pravilno delovanje programa, v delovnem imeniku ustvarite datoteko z imenom example1.txt.
V datoteko dodajte naslednjo vsebino ali pa lahko dodate poljubno besedilo.
Pozdravljeni, dobrodošli v Geeks for Geeks
Shranite datoteko in zaženite program. Program bo prebral in prikazal vsebino primera1 .txt kot izhod.
Konstruktorji razreda Reader
Z razredom Java Reader Class se uporabljata dva konstruktorja, kot je navedeno spodaj:
- zaščiten bralec(): Ustvari nov bralnik toka znakov, katerega kritični deli se bodo sinhronizirali na samem bralniku.
- zaščiten bralnik (zaklepanje predmeta) : ustvari nov bralnik toka znakov, katerega kritični odseki se bodo sinhronizirali na danem objektu.
Metode Java Reader Class
| Metoda | Opis |
|---|---|
| abstraktna praznina zapri() | Zapre tok in sprosti vire. |
| void mark(int readAheadLimit) | Označuje trenutni položaj v toku. |
| boolean markSupported() | Preveri, ali so podprte operacije označevanja/ponastavitve. |
| int read() | Prebere en znak iz toka. Vrne -1, če je dosežen konec. |
| int branje (char[] cbuf) | Prebere več znakov v matriko. |
| abstract int read(char[] cbuf int off int len) | Prebere del matrike, ki se začne pri odmiku off za dolžino len. |
| int branje (cilj CharBuffer) | Prebere znake v objekt CharBuffer. |
| void reset() | Ponastavi tok na zadnji položaj oznake. |
| dolg preskok (dolg n) | Preskoči določeno število znakov. |
primer: Spodnji program prikazuje delovanje različnih funkcij razreda Reader v Javi.
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 (); } }
Izhod:
Izhod Izvedba bralnih razredov
Nekatere izvedbe razredov Reader v Javi so omenjene spodaj:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader