Java Reader Class
Klasa Reader u Javi je apstraktna klasa za čitanje tokova znakova. Njegove podklase ( FileReader BufferedReade ) pružaju implementacije s read() kao glavnom metodom za čitanje znakova.
- Implementira Readable sučelje koje definira metodu read(CharBuffer cb).
- Implementira Closeable sučelje koje definira close() metodu za oslobađanje resursa.
Čitač Izjava o čitateljskoj klasi
Deklaracija klase Reader data je u nastavku:
javna apstraktna klasa Reader implementira Readable Closeable
Primjer: Čitanje tekstualne datoteke znak po znak pomoću klase 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 ()); } } }
Izlaz:
izlaz Bilješka: Kako biste osigurali da program ispravno radi, kreirajte datoteku pod nazivom example1.txt u radnom direktoriju.
Dodajte sljedeći sadržaj u datoteku ili možete dodati bilo koji tekst.
Pozdrav, dobrodošli u Geeks for Geeks
Spremite datoteku i pokrenite program. Program će pročitati i prikazati sadržaj primjera1 .txt kao izlaz.
Konstruktori Reader klase
Postoje dva konstruktora koji se koriste s klasom Java Reader kao što je spomenuto u nastavku:
- zaštićeni čitač(): Stvara novi čitač toka znakova čiji će se kritični dijelovi sinkronizirati na samom čitaču.
- zaštićeni čitač (zaključavanje objekta) : Stvara novi čitač toka znakova čiji će se kritični odjeljci sinkronizirati na danom objektu.
Metode Java Reader Class
| metoda | Opis |
|---|---|
| apstraktna praznina zatvori() | Zatvara tok i oslobađa resurse. |
| void oznaka (int readAheadLimit) | Označava trenutnu poziciju u toku. |
| boolean markSupported() | Provjerava jesu li podržane operacije označavanja/poništavanja. |
| int čitanje() | Čita jedan znak iz toka. Vraća -1 ako se dosegne kraj. |
| int read(char[] cbuf) | Čita više znakova u polje. |
| abstract int read(char[] cbuf int off int len) | Čita dio niza počevši od pomaka za duljinu len. |
| int read(CharBuffer target) | Čita znakove u objekt CharBuffer. |
| void reset() | Ponovno postavlja tok na posljednju poziciju oznake. |
| dugo preskakanje (dugo n) | Preskače navedeni broj znakova. |
Primjer: Donji program demonstrira rad različitih funkcionalnosti klase Reader u 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 (); } }
Izlaz:
Izlaz Provedba nastave lektire
Neke od implementacija Reader klasa u Javi navedene su u nastavku:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- Čitač nizova