Neste tutorial, aprenderemos sobre o Java Reader, suas subclasses e seus métodos com a ajuda de um exemplo.
A Reader
classe do java.io
pacote é uma superclasse abstrata que representa um fluxo de caracteres.
Por Reader
ser uma classe abstrata, não é útil por si só. No entanto, suas subclasses podem ser usadas para ler dados.
Subclasses de Reader
Para usar a funcionalidade de Reader
, podemos usar suas subclasses. Alguns deles são:
- BufferedReader
- InputStreamReader
- FileReader
- StringReader
Aprenderemos sobre todas essas subclasses no próximo tutorial.
Crie um leitor
Para criar um Reader
, devemos java.io.Reader
primeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o leitor.
// Creates a Reader Reader input = new FileReader();
Aqui, criamos um leitor usando a FileReader
classe. É porque Reader
é uma classe abstrata. Portanto, não podemos criar um objeto de Reader
.
Nota : Também podemos criar leitores de outras subclasses de Reader
.
Métodos de Leitor
A Reader
classe fornece métodos diferentes que são implementados por suas subclasses. Aqui estão alguns dos métodos comumente usados:
ready()
- verifica se o leitor está pronto para ser lidoread(char() array)
- lê os caracteres do fluxo e os armazena na matriz especificadaread(char() array, int start, int length)
- lê o número de caracteres igual ao comprimento do fluxo e armazena na matriz especificada a partir do iníciomark()
- marca a posição no fluxo até a qual os dados foram lidosreset()
- retorna o controle para o ponto no riacho onde a marca está definidaskip()
- descarta o número especificado de caracteres do fluxo
Exemplo: Reader usando FileReader
Aqui está como podemos implementar Reader
usando a FileReader
classe.
Suponha que temos um arquivo denominado input.txt com o seguinte conteúdo.
This is a line of text inside the file.
Vamos tentar ler este arquivo usando FileReader
(uma subclasse de Reader
).
import java.io.Reader; import java.io.FileReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader Reader input = new FileReader("input.txt"); // Checks if reader is ready System.out.println("Is there data in the stream? " + input.ready()); // Reads characters input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Resultado
Existem dados no stream? true Dados no fluxo: Esta é uma linha de texto dentro do arquivo.
No exemplo acima, criamos um leitor usando a FileReader
classe. O leitor está vinculado ao arquivo input.txt .
Reader input = new FileReader("input.txt");
Para ler os dados do arquivo input.txt , implementamos esses métodos.
input.read(); // to read data from the reader input.close(); // to close the reader
Para saber mais, visite Java Reader (documentação oficial do Java).