English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Cola (Queue)

Conjuntos Java Map

Conjuntos Java

Java entrada/salida (I/O)

Reader de Java/Writer

Otras temáticas de Java

Java Reader clase

En este tutorial, entenderemos a través de un ejemplo el Reader de Java, sus subclases y sus métodos.

La clase Reader de java.io es una superclase abstracta que representa los flujos de caracteres.

Dado que Reader es una clase abstracta, no tiene efecto por sí mismo. Sin embargo, sus subclases se pueden usar para leer datos.

Subclases de Reader

Para utilizar las funciones de Reader, podemos usar sus subclases. Algunas de ellas son:

En el siguiente tutorial, aprenderemos todos estos subclases.

Crear Reader

Para crear un Reader, primero debemos importar el paquete java.io.Reader. Después de importar el paquete, podemos crear un Reader.

// Crear Reader
Reader input = new FileReader();

Aquí, creamos un Reader usando la clase FileReader. Esto se debe a que Reader es una clase abstracta. Por lo tanto, no podemos crear un objeto Reader.

Nota:También podemos crear Reader a partir de otras subclases de Reader.

Métodos de Reader

El método Reader proporcionado por esta clase Reader es diferente del que implementan sus subclases. A continuación, se presentan algunos métodos comunes:

  • ready(); - Verificar si el Reader está listo para leer

  • read(char[] array)  - Leer caracteres desde el flujo y almacenarlos en el array especificado

  • read(char[] array, int start, int length)- Leer una cantidad de caracteres igual a length desde el flujo y almacenarlos en el array especificado comenzando en start

  • mark(); - Marcar la posición de los datos leídos en el flujo

  • reset(); - Restablecer el flujo. Si el flujo ya ha sido marcado, luego intentar marcarlo nuevamente para volver a ubicarse. Si el flujo no ha sido marcado, intentar restablecerlo en una ubicación apropiada para ciertos flujos específicos, por ejemplo, volviendo a su punto de partida.

  • skip(); -Descartar un número específico de caracteres del flujo

Ejemplo: Uso de Reader con FileReader

Así es como implementamos métodos de Reader usando la clase FileReader.

Supongamos que tenemos un archivo llamadoinput.txtEl archivo, que contiene el siguiente contenido.

Esta es una línea de texto dentro del archivo.

Vamos a intentar leer este archivo usando FileReader (un subclase de Reader).

import java.io.Reader;
import java.io.FileReader;
class Main {
    public static void main(String[] args) {
        // Crear un array de caracteres
        char[] array = new char[100];
        try {
            //Crear un Reader usando FileReader
            Reader input = new FileReader("input.txt");
            //Verificar si el Reader está listo 
            System.out.println("¿Hay datos en el flujo?  " ); + input.ready());
            //Leer caracteres
            input.read(array);
            System.out.println("Los datos en el flujo:");
            System.out.println(array);
            // Cerrar reader
            input.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

Resultado de salida

¿Hay datos en el flujo? true
Datos en el flujo:
Esta es una línea de texto dentro del archivo.

En el ejemplo anterior, creamos un lector usando la clase FileReader. El lector y el archivoinput.txtenlace.

Reader input = new FileReader("input.txt");

Para leer desdeinput.txtHemos implementado estos métodos para la lectura de archivos.

input.read();       //Leer datos del reader
input.close();      //Cerrar reader