Clase de lector Java
La clase Reader en Java es una clase abstracta para leer secuencias de caracteres. Sus subclases ( Lector de archivos lectura tamponada ) proporcionan implementaciones en las que read() es el método principal para leer caracteres.
- Implementa la interfaz Readable que define el método read(CharBuffer cb).
- Implementa la interfaz Closeable que define el método close() para liberar recursos.
Lector Declaración de clase de lector
La declaración de la clase Lector se proporciona a continuación:
clase abstracta pública Lector implementa Legible Cerrable
Ejemplo: Lea un archivo de texto carácter por carácter utilizando la clase 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 ()); } } }
Producción :
producción Nota: Para garantizar que el programa se ejecute correctamente, cree un archivo llamado ejemplo1.txt en el directorio de trabajo.
Agregue el siguiente contenido al archivo o puede agregar cualquier texto.
Hola, bienvenidos a Geeks for Geeks.
Guarde el archivo y ejecute el programa. El programa leerá y mostrará el contenido del ejemplo 1. .txt como salida.
Constructores de clase lectora
Hay dos constructores utilizados con Java Reader Class como se menciona a continuación:
- Lector protegido(): Crea un nuevo lector de flujo de caracteres cuyas secciones críticas se sincronizarán en el propio lector.
- Lector protegido (bloqueo de objeto) : Crea un nuevo lector de flujo de caracteres cuyas secciones críticas se sincronizarán en el objeto dado.
Métodos de la clase de lector Java
| Método | Descripción |
|---|---|
| cierre vacío abstracto() | Cierra la transmisión y libera recursos. |
| marca nula (int readAheadLimit) | Marca la posición actual en la secuencia. |
| marca booleanaSupported() | Comprueba si se admiten operaciones de marca/restablecimiento. |
| int lectura() | Lee un solo carácter de la secuencia. Devuelve -1 si se llega al final. |
| int leer(char[] cbuf) | Lee varios caracteres en una matriz. |
| resumen int read(char[] cbuf int off int len) | Lee una parte de la matriz comenzando en el desplazamiento de longitud len. |
| int read(destino CharBuffer) | Lee caracteres en un objeto CharBuffer. |
| reinicio nulo() | Restablece la transmisión a la posición de marca más reciente. |
| salto largo (n largo) | Omite el número especificado de caracteres. |
Ejemplo: El siguiente programa demuestra el funcionamiento de varias funcionalidades de la clase Reader en 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 (); } }
Producción:
Producción Implementación de clases de lector
Algunas de las implementaciones de clases Reader en Java se mencionan a continuación:
- Lector almacenado en búfer
- CharArrayReader
- Lector de filtros
- Lector de flujo de entrada
- lector canalizado
- Lector de cadenas