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

Tutorial Básico de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções do Java

Java Lista (List)

Java Fila (Queue)

Java Mapa (Map)

Java Conjunto (Set)

Java Entrada e Saída (I/O)

Java Reader/Writer

Outros tópicos do Java

Classe Java Reader

Neste tutorial, vamos entender o Java Reader, suas subclasses e seus métodos por meio de um exemplo.

A classe Reader no pacote java.io é uma superclasse abstrata, representando fluxos de caracteres.

Como Reader é uma classe abstrata, ela não funciona sozinha. No entanto, suas subclasses podem ser usadas para ler dados.

Subclasse de Reader

Para usar as funcionalidades de Reader, podemos usar suas subclasses. Alguns deles são:

No próximo tutorial, vamos aprender todas essas subclasses.

Criar Reader

Para criar um Reader, devemos primeiro importar o pacote java.io.Reader. Após a importação do pacote, podemos criar um Reader.

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

Aqui, usamos a classe FileReader para criar um Reader. Isso é porque Reader é uma classe abstrata. Portanto, não podemos criar um objeto Reader.

Atenção:Também podemos criar Reader a partir de outras subclasses de Reader.

Métodos do Reader

Este método Reader é implementado de maneira diferente pelas suas subclasses. Aqui estão alguns métodos comuns:

  • ready(); - Verificar se o Reader está pronto para leitura

  • read(char[] array)  - Ler caracteres do fluxo e armazená-los no array especificado

  • read(char[] array, int start, int length)- Ler um número de caracteres igual ao comprimento do array e armazenar a partir do início no array especificado

  • mark(); - Marcar o local dos dados lidos no fluxo

  • reset(); - Redefinir o fluxo. Se o fluxo já estiver marcado, tente marcá-lo novamente para relocalizar. Se o fluxo não estiver marcado, tente redefinir-no em um ponto adequado específico de alguns métodos de fluxo específicos, por exemplo, relocalizando-o para o ponto de início.

  • skip(); -Descartar um número especificado de caracteres do fluxo

Exemplo: Usando Reader do FileReader

Aqui está como usamos a classe FileReader para implementar métodos do Reader.

Suponha que tenhamos um arquivo chamadoinput.txtdo arquivo, que contém o seguinte conteúdo.

Esta é uma linha de texto dentro do arquivo.

Vamos tentar usar FileReader (subclasse de Reader) para ler este arquivo.

import java.io.Reader;
import java.io.FileReader;
class Main {
    public static void main(String[] args) {
        // Criar um array de caracteres
        char[] array = new char[100];
        try {
            //Usar FileReader para criar Reader
            Reader input = new FileReader("input.txt");
            //Verificar se o Reader está pronto 
            System.out.println("Há dados no fluxo?		" + input.ready());
            //Ler caractere
            input.read(array);
            System.out.println("Os dados no fluxo:");
            System.out.println(array);
            // Fechar reader
            input.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

Resultado da saída

Há dados no fluxo? true
Dado no fluxo:
Esta é uma linha de texto dentro do arquivo.

No exemplo acima, usamos a classe FileReader para criar um leitor. O Reader está ligado ao arquivoinput.txtligação.

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

Para lerinput.txtLeitura de dados do arquivo, já implementamos esses métodos.

input.read();       //Ler dados do reader
input.close();      //Fechar reader