Como ler um arquivo de texto em Java?

A leitura de arquivos de texto em Java pode ser feita utilizando FileReader, BufferedReader ou a API NIO para manipulação eficiente de dados.

Como ler um arquivo de texto em Java?

A leitura de arquivos é uma funcionalidade essencial em qualquer linguagem de programação. Em Java, existem diferentes maneiras de ler um arquivo de texto, dependendo da necessidade de desempenho e simplicidade do código.

1. Lendo Arquivos com FileReader e BufferedReader

O FileReader permite ler caracteres diretamente de um arquivo, enquanto o BufferedReader melhora a performance ao armazenar os dados em buffer.

import java.io.*;

public class LeitorArquivo {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("arquivo.txt"))) {
            String linha;
            while ((linha = br.readLine()) != null) {
                System.out.println(linha);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Neste código, abrimos um arquivo chamado arquivo.txt, lemos linha por linha e exibimos no console.

2. Utilizando Files.readAllLines() (Java 8+)

Se quiser uma abordagem mais moderna e eficiente, a API java.nio.file pode ser utilizada.

import java.nio.file.*;
import java.io.IOException;
import java.util.List;

public class LeitorArquivoNIO {
    public static void main(String[] args) {
        try {
            List<String> linhas = Files.readAllLines(Paths.get("arquivo.txt"));
            linhas.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Este método lê todas as linhas do arquivo e as armazena em uma lista.

3. Lendo Arquivos de Forma Eficiente com Files.lines()

Se estiver lidando com arquivos grandes, Files.lines() pode ser mais eficiente ao utilizar streams.

import java.nio.file.*;
import java.io.IOException;

public class LeitorArquivoStream {
    public static void main(String[] args) {
        try {
            Files.lines(Paths.get("arquivo.txt")).forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Aqui, utilizamos um stream de linhas, processando o arquivo de forma mais eficiente para grandes volumes de dados.

4. Comparação entre Métodos

Método Vantagens
BufferedReader Melhor para leitura linha a linha
Files.readAllLines() Simples e fácil de usar, mas pode consumir mais memória
Files.lines() Usa Streams, ideal para arquivos grandes

Conclusão

A escolha do método para leitura de arquivos depende do tamanho do arquivo e do uso pretendido. Para arquivos pequenos, Files.readAllLines() é prático. Já para grandes volumes de dados, BufferedReader ou Files.lines() são mais eficientes.

A leitura de arquivos é um recurso fundamental para qualquer aplicação que manipula dados externos. Em sistemas de logs, por exemplo, a eficiência na leitura pode impactar diretamente a análise de grandes volumes de dados. Frameworks como Spring Boot utilizam a leitura de arquivos para processar configurações e logs de aplicações. Dominar os diferentes métodos de leitura permite criar soluções escaláveis e otimizadas.

Algumas aplicações:

  • Processamento de arquivos de log
  • Leitura de arquivos de configuração
  • Importação de dados de arquivos externos
  • Manipulação de grandes volumes de dados

Dicas para quem está começando

  • Use BufferedReader para leitura linha a linha
  • Prefira Files.readAllLines() para arquivos pequenos
  • Utilize Files.lines() para leitura eficiente de arquivos grandes
  • Não se esqueça de tratar exceções (IOException)
  • Feche os recursos corretamente usando try-with-resources

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como ler um arquivo de texto em Java

Compartilhe este tutorial

Continue aprendendo:

Como criar um conjunto Set e evitar elementos duplicados em Java

O Set em Java é uma coleção que armazena apenas elementos únicos, evitando duplicatas automaticamente e oferecendo diferentes implementações para ordenação e performance.

Tutorial anterior

Como escrever em um arquivo de texto em Java

A escrita de arquivos de texto em Java pode ser feita com FileWriter, BufferedWriter e NIO, garantindo eficiência e controle sobre os dados gravados.

Próximo tutorial