Pular para o conteúdo principal
Documentos
Palavras-chave JavaMatrizes JavaProgramação orientada a objetos em JavaManuseio de arquivos JavaIntrodução ao JavaNoções básicas da linguagem Java

Leitura de arquivos em Java

A leitura de arquivos é uma tarefa comum na programação Java, muitas vezes necessária para o processamento e a manipulação de dados. O Java oferece várias classes e métodos para ler arquivos com eficiência, com opções para lidar com dados binários e de texto.

Classes-chave para leitura de arquivos

  • FileReader: Usado para ler arquivos de texto de maneira simples e eficiente.
  • BufferedReader: Envolve o site FileReader para ler texto de um fluxo de entrada de caracteres, armazenando caracteres em buffer para uma leitura eficiente de caracteres, matrizes e linhas.
  • Arquivos: Parte do pacote java.nio.file, ele fornece métodos estáticos para ler arquivos e diretórios.
  • Scanner: Uma classe versátil usada para analisar tipos primitivos e cadeias de caracteres usando expressões regulares.

Exemplos

Exemplo 1: Usando FileReader e BufferedReader


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

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

Neste exemplo, FileReader e BufferedReader são usados para ler um arquivo de texto linha por linha. A instrução try-with-resources garante que o arquivo seja fechado após a leitura.

Exemplo 2: Usando a classe Files


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FilesExample {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("example.txt"));
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
    

A classe Files oferece uma maneira direta de ler todas as linhas de um arquivo em um List. Esse método é eficiente para arquivos menores.

Exemplo 3: Usando o scanner


import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        try (Scanner scanner = new Scanner(new File("example.txt"))) {
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
    

A classe Scanner é usada aqui para ler um arquivo linha por linha. É útil para analisar dados com delimitadores específicos.

Dicas e práticas recomendadas

  • Gerenciamento de recursos: Use o site try-with-resources para garantir que os fluxos de arquivos sejam fechados automaticamente, evitando vazamentos de recursos.
  • Tratamento de exceções: Sempre lide com IOException e FileNotFoundException ao trabalhar com operações de E/S de arquivos.
  • Codificação de caracteres: Tenha em mente a codificação de caracteres ao ler arquivos. Use InputStreamReader com um conjunto de caracteres especificado, se necessário.
    
    new BufferedReader(new InputStreamReader(new FileInputStream("example.txt"), "UTF-8"));
                
  • Tamanho do arquivo: Para arquivos grandes, considere a leitura em partes ou o uso de arquivos mapeados na memória para evitar problemas de memória.
  • Concorrência: Se vários threads precisarem ler o mesmo arquivo, considere o uso de blocos sincronizados ou classes thread-safe para gerenciar o acesso.

Learn Java Essentials

Desenvolva suas habilidades em Java desde o início e domine os conceitos de programação.
Comece a aprender de graça