English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre o Java FileReader e seus métodos com a ajuda de exemplos.
A classe FileReader do pacote java.io pode ser usada para ler dados do arquivo (em unidades de caractere).
ele herda a classe InputSreamReader.
Antes de aprender sobre FileReader, certifique-se de que você entendaJava File.
Para criar um leitor de arquivo,我们必须 primeiro importar o pacote java.io.FileReader. Após a importação do pacote, aqui está o método para criar o leitor de arquivo.
1.Usando o nome do arquivo
FileReader input = new FileReader(String name);
Aqui, criamos um leitor de arquivo que se conectará ao nome do arquivo especificado.
2.Usando o objeto do arquivo
FileReader input = new FileReader(File fileObj);
Aqui, criamos um leitor de arquivo que se conectará ao arquivo especificado pelo objeto do arquivo.
No exemplo acima, os dados do arquivo são armazenados usando uma codificação de caracteres padrão.
mas, devido ao Java 11também podemos especificar o tipo de codificação de caracteres do arquivo (UTF-8ouUTF-16)
FileReader input = new FileReader(String file, Charset cs);
Aqui, usamos a classe Charset para especificar a codificação de caracteres do leitor de arquivo.
A classe FileReader fornece implementações de diferentes métodos existentes na classe Reader.
read() - Ler um caractere do leitor
read(char[] array) - Ler caracteres do leitor e armazená-los no array especificado
read(char[] array, int start, int length) - ler igual ao número de caracteres length e armazenar na posição start no array especificado
Por exemplo, 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 o leitor de arquivo FileReader.
import java.io.FileReader; class Main { public static void main(String[] args) { //criar um array de caracteres char[] array = new char[100]; try { //criar leitor usando FileReader FileReader input = new FileReader("input.txt"); //ler caracteres input.read(array); System.out.println("Dados no arquivo: "); System.out.println(array); // fechar reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output Result
Dados no arquivo: Esta é uma linha de texto dentro do arquivo.
No exemplo acima, criamos um leitor de arquivo chamado input. O leitor de arquivo está ligado ao arquivoinput.txtligação.
FileInputStream input = new FileInputStream("input.txt");
Para ler dados do arquivo, usamos o método read().
O método getEncoding() pode ser usado para obter o tipo de código de caracteres utilizado 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 { //cria um FileReader com código de caracteres padrão FileReader input1 = new FileReader("input.txt"); //cria um FileReader com especificação de código de caracteres FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); //retorna o código de caracteres do leitor de arquivo System.out.println("input1do código de caracteres: " + input1.getEncoding()); System.out.println("input2do código de caracteres: " + input2.getEncoding()); //fechar reader input1.close(); input2.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output Result
input1Character Encoding: Cp1252 input2Character Encoding: UTF8
In the above example, we created2a file reader, named input1and input2.
input1No character encoding specified. Therefore, the getEncoding() method returns the default character encoding.
input2Specify Character EncodingUTF8. Therefore, the getEncoding() method returns the specified character encoding.
Note: We have specified the type of character encoding using the Charset.forName() method.
To close the file reader, we can use the close() method. After calling the close() method, we will not be able to use the reader to read data.
Method | Description |
---|---|
ready() | Check if the file reader is ready to read |
mark() | Mark the position of the data read in the file reader |
reset() | Reset the reader to return to the position of the mark set in the reader |