Capítulo 12: Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
Especialização em Sistemas com Java 21 LTS • Capítulo 12
🗺️ Mapa Conceitual do Tópico
flowchart LR
A["Path.of('vendas.csv')"] -->|"Files.newBufferedReader()"| B["BufferedReader"]
B -->|Processamento Linha a Linha| C["Mapeamento em Memória"]
C -->|"Files.newBufferedWriter()"| D["BufferedWriter ('relatorio.json')"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style D fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
📁 1. Entrada e Saída com java.nio.file
A API NIO.2 (Path, Files, Paths) fornece operações modernas e de alta performance no sistema de arquivos:
Files.lines(Path): Leitura preguiçosa de arquivos grandes via Stream.try-with-resourcescomBufferedReader: Leitura eficiente bufferizada com liberação automática de ponteiros do Windows.
💻 Exemplo Prático e Compilável em Java 21
// ProcessadorArquivo.java - Leitura Bufferizada com NIO.2
package com.empresa.arquivos;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class ProcessadorArquivo {
public static long contarLinhas(Path caminho) throws IOException {
try (BufferedReader reader = Files.newBufferedReader(caminho)) {
return reader.lines().count();
}
}
}
🔗 Recursos Pedagógicos do Capítulo 12
| Recurso Didático | Finalidade | Link de Acesso |
|---|---|---|
| 📊 Slides de Aula | Apresentação visual interativa com Dark Mode e suporte a teclado | Ver Slides |
| 🧠 Quiz Formativo | Teste interativo de fixação com feedback imediato por alternativa | Fazer Quiz |
| 💻 Exemplos de Código | Demonstrações funcionais compiláveis com saída no console | Ver Exemplos |
| 🧩 Exercícios em 4 Níveis | Lista progressiva de fixação com gabarito em bloco colapsável | Resolver Exercícios |
| 🛡️ Capítulo Anterior | 📚 Sumário de Tópicos | 🗄️ Próximo Capítulo |