Classe de lector de Java
La classe Reader en Java és un classe abstracta per llegir fluxos de personatges. Les seves subclasses ( FileReader BufferedReade ) proporcionen implementacions amb read() com el mètode principal per llegir caràcters.
- Implementa la interfície Readable que defineix el mètode read(CharBuffer cb).
- Implementa la interfície Closeable que defineix el mètode close() per alliberar recursos.
Lector Declaració de classe lectora
A continuació es presenta la declaració de classe de lector:
classe abstracta pública Reader implementa Readable Closeable
Exemple: Llegiu un fitxer de text caràcter per caràcter mitjançant la classe 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 ()); } } }
Sortida:
sortida Nota: Per assegurar-vos que el programa s'executa correctament, creeu un fitxer anomenat example1.txt al directori de treball.
Afegiu el contingut següent al fitxer o podeu afegir qualsevol text.
Hola, benvinguts a Geeks for Geeks
Deseu el fitxer i executeu el programa. El programa llegirà i mostrarà el contingut de l'exemple 1 .txt com a sortida.
Constructors de la classe Reader
Hi ha dos constructors utilitzats amb Java Reader Class, tal com s'esmenta a continuació:
- Lector protegit(): Crea un nou lector de flux de personatges les seccions crítiques del qual es sincronitzaran amb el propi lector.
- Lector protegit (bloqueig d'objectes) : crea un nou lector de flux de caràcters les seccions crítiques del qual es sincronitzaran amb l'objecte donat.
Mètodes de Java Reader Class
| Mètode | Descripció |
|---|---|
| buit abstracte tancar() | Tanca el flux i allibera recursos. |
| marca nul (int readAheadLimit) | Marca la posició actual al tauler d'activitat. |
| marca booleà admesa () | Comprova si les operacions de marcar/restablir són compatibles. |
| int read() | Llegeix un sol caràcter del tauler d'activitat. Retorna -1 si s'arriba al final. |
| int llegir(char[] cbuf) | Llegeix diversos caràcters en una matriu. |
| abstract int read(char[] cbuf int off int len) | Llegeix una part de la matriu començant per l'offset per a la longitud len. |
| int lectura (destí de CharBuffer) | Llegeix caràcters en un objecte CharBuffer. |
| void reset() | Restableix el flux a la posició de marca més recent. |
| salt llarg (n llarg) | Omet el nombre especificat de caràcters. |
Exemple: El programa següent mostra el funcionament de diverses funcionalitats de la classe Reader a 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 (); } }
Sortida:
Sortida Implementació de Classes lectores
Algunes de les implementacions de les classes Reader a Java s'esmenten a continuació:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader