Como abrir e ler arquivos de texto de acesso sequencial em Java
Na lição passada vimos como criar e editar arquivos de texto de acesso sequencial em Java. Agora vamos mostrar como abrir e ler esses arquivos. Usaremos o arquivo criado anteriormente, arquivo.txt, no exemplo.
Note que vamos trabalhar com um arquivo cujo local de armazenamento no disco já é conhecido previamente, por isso o caminho do arquivo é hard-coded. Nas lições futuras mostraremos como escolher arquivos em locais aleatórios para leitura e edição.
O exemplo que usaremos foi adaptado de Deitel – Java How to Program, 10ª edição. A seguir, temos o código completo da aplicação.
Código
import java.io.IOException;
import java.lang.IllegalStateException;
import java.util.NoSuchElementException;
import java.util.Scanner;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class LerArquivoTexto
{
private static Scanner entrada;
// programa principal
public static void main(String[] args) {
abrirArquivo();
lerDados();
fecharArquivo();
}
// Método para abrir o arquivo arquivo.txt
public static void abrirArquivo() {
try {
entrada = new Scanner(Paths.get("c:\\Java\\arquivo.txt")); // Abrir o arquivo, salvo em C:\Java\
}
catch (IOException erroES) {
System.err.println("Erro ao abrir o arquivo. Finalizando.");
System.exit(1); // terminar o programa
}
}
// Método para ler os registros do arquivo
public static void lerDados() {
System.out.printf("%-10s%-15s%n","Código","Produto");
try {
while (entrada.hasNext()) { // enquanto houver dados para ler, mostrar os registros
System.out.printf("%-10d%-12s%n",entrada.nextInt(),entrada.next());
}
}
catch (NoSuchElementException erroElemento) {
System.err.println("Arquivo com problemas. Finalizando.");
entrada.nextLine(); // Descartar a entrada para que o usuário possa tentar de novo
}
catch (IllegalStateException erroEstado) {
System.err.println("Erro ao ler o arquivo. Finalizando.");
}
} // fim do método lerDados
// Método para fechar o arquivo aberto
public static void fecharArquivo() {
if (entrada != null)
entrada.close();
}
} // Fim da classe LerArquivoTexto
Ao abrir o arquivo arquivo.txt usando o programa acima, vemos na tela o seguinte resultado:
Note que no programa principal executamos apenas três métodos: abrirArquivo, lerDados e fecharArquivo, para realizar as operações correspondentes. Todo o processamento é executado dentro desses métodos.
Anterior: Criar e editar arquivos de texto de acesso sequencial em Java
