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.
Declaració de classe lectora
A continuació es presenta la declaració de classe de lector:
pàgines del servidor java
classe abstracta pública Reader implementa Readable Closeable
Exemple: Llegiu un fitxer de text caràcter per caràcter mitjançant la classe Reader.
Javaimport 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:
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.
mvc java
Hola, benvinguts a Geeks for Geeks
Deseu el fitxer i executeu el programa. El programa llegirà i mostrarà el contingut de l'exemple 1.txtcom 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.
Javaimport 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:
int a cadena java
Implementació de Classes lectores
Algunes de les implementacions de les classes Reader a Java s'esmenten a continuació:
- BufferedReader
- CharArrayReader
- FilterReader
- InputStreamReader
- PipedReader
- StringReader