Java FileReader (com exemplos)

Neste tutorial, aprenderemos sobre Java FileReader e seus métodos com a ajuda de exemplos.

A FileReaderclasse do java.iopacote pode ser usada para ler dados (em caracteres) de arquivos.

Isso estende a InputSreamReaderclasse.

Antes de aprender sobre FileReader, certifique-se de conhecer o arquivo Java.

Crie um FileReader

Para criar um leitor de arquivos, devemos java.io.FileReaderprimeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o leitor de arquivos.

1. Usando o nome do arquivo

 FileReader input = new FileReader(String name); 

Aqui, criamos um leitor de arquivos que será vinculado ao arquivo especificado pelo nome.

2. Usando um objeto do arquivo

 FileReader input = new FileReader(File fileObj); 

Aqui, criamos um leitor de arquivos que será vinculado ao arquivo especificado pelo objeto do arquivo.

No exemplo acima, os dados no arquivo são armazenados usando alguma codificação de caracteres padrão.

No entanto, desde o Java 11, podemos especificar o tipo de codificação de caracteres ( UTF-8 ou UTF-16 ) no arquivo também.

 FileReader input = new FileReader(String file, Charset cs); 

Aqui, usamos a Charsetclasse para especificar a codificação de caracteres do leitor de arquivos.

Métodos de FileReader

A FileReaderclasse fornece implementações para diferentes métodos presentes na Readerclasse.

Método read ()

  • read() - lê um único caractere do leitor
  • read(char() array) - lê os caracteres do leitor e os armazena na matriz especificada
  • read(char() array, int start, int length) - lê o número de caracteres igual ao comprimento do leitor e armazena na matriz especificada a partir da posição inicial

Por exemplo, 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 o arquivo usando FileReader.

 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 FileReader input = new FileReader("input.txt"); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Resultado

 Dados no arquivo: Esta é uma linha de texto dentro do arquivo. 

No exemplo acima, criamos um leitor de arquivos denominado input. O leitor de arquivos está vinculado ao arquivo input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Para ler os dados do arquivo, usamos o read()método.

Método getEncoding ()

O getEncoding()método pode ser usado para obter o tipo de codificação usado para armazenar dados no arquivo. Por exemplo,

 import java.io.FileReader; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( try ( // Creates a FileReader with default encoding FileReader input1 = new FileReader("input.txt"); // Creates a FileReader specifying the encoding FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); // Returns the character encoding of the file reader System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Resultado

 A codificação de caracteres de input1: Cp1252 A codificação de caracteres de input2: UTF8 

No exemplo acima, criamos 2 leitores de arquivo chamados input1 e input2.

  • input1 não especifica a codificação de caracteres. Portanto, o getEncoding()método retorna a codificação de caracteres padrão.
  • input2 especifica a codificação de caracteres, UTF8 . Portanto, o getEncoding()método retorna a codificação de caracteres especificada.

Nota : Usamos o Charset.forName()método para especificar o tipo de codificação de caracteres. Para saber mais, visite Java Charset (documentação oficial do Java).

Método close ()

Para fechar o leitor de arquivos, podemos usar o close()método. Depois que o close()método é chamado, não podemos usar o leitor para ler os dados.

Outros métodos de FileReader

Método Descrição
ready() verifica se o leitor de arquivos está pronto para ser lido
mark() marcar a posição no leitor de arquivos até a qual os dados foram lidos
reset() retorna o controle para o ponto no leitor onde a marca foi definida

Para saber mais, visite Java FileReader (documentação oficial do Java).

Artigos interessantes...