Neste tutorial, aprenderemos sobre Java FileReader e seus métodos com a ajuda de exemplos.
A FileReader
classe do java.io
pacote pode ser usada para ler dados (em caracteres) de arquivos.
Isso estende a InputSreamReader
classe.
Antes de aprender sobre FileReader
, certifique-se de conhecer o arquivo Java.
Crie um FileReader
Para criar um leitor de arquivos, devemos java.io.FileReader
primeiro 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 Charset
classe para especificar a codificação de caracteres do leitor de arquivos.
Métodos de FileReader
A FileReader
classe fornece implementações para diferentes métodos presentes na Reader
classe.
Método read ()
read()
- lê um único caractere do leitorread(char() array)
- lê os caracteres do leitor e os armazena na matriz especificadaread(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).