🧩 Exercícios: Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 12.1 — Leitura e Escrita Moderna com java.nio.file.Files e Path
Contexto: Leitura e Escrita Moderna com java.nio.file.Files e Path no contexto de Manipulação de Arquivos e Streams I/O (java.io e java.nio.file).
Requisitos de Execução:
- Gravar e ler strings com
Files.writeString(path, texto)eFiles.readString(path)no Java 21.
Resultado Esperado
Operações I/O executadas com API moderna de NIO.2.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_12_1_SeuNome - Envie na tarefa:
Atividade Cap 12 - Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.nio.file.Files;
import java.nio.file.Path;
public class NioDemo {
public static void main(String[] args) throws Exception {
Path p = Path.of("audit.log");
Files.writeString(p, "AUDITORIA: Java Systems 100%\n");
String lido = Files.readString(p);
System.out.print("Conteudo: " + lido);
}
}
🔍 Nível 2: Prática
Problema 12.2 — Leitura Eficiente em Stream com Files.lines() e Filtros
Contexto: Leitura Eficiente em Stream com Files.lines() e Filtros no contexto de Manipulação de Arquivos e Streams I/O (java.io e java.nio.file).
Requisitos de Execução:
- Processar arquivo de log massivo utilizando
Files.lines(path)filtrando linhas com Stream API.
Resultado Esperado
Arquivo processado sob demanda sem carregar o arquivo inteiro na memória Heap.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_12_2_SeuNome - Envie na tarefa:
Atividade Cap 12 - Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.nio.file.Files;
import java.nio.file.Path;
public class StreamFilesDemo {
public static void main(String[] args) throws Exception {
Path p = Path.of("audit.log");
long totalErros = Files.lines(p).filter(l -> l.contains("ERRO")).count();
System.out.println("Total de erros: " + totalErros);
}
}
⚡ Nível 3: Integração
Problema 12.3 — Serialização Binária de Objetos com ObjectOutputStream
Contexto: Serialização Binária de Objetos com ObjectOutputStream no contexto de Manipulação de Arquivos e Streams I/O (java.io e java.nio.file).
Requisitos de Execução:
- Gravar e recuperar objeto serializável em arquivo binário
.ser.
Resultado Esperado
Objeto persistido e reconstituído em binário nativo.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_12_3_SeuNome - Envie na tarefa:
Atividade Cap 12 - Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.io.*;
public class SerializacaoDemo {
record Config(String host, int porta) implements Serializable {}
public static void main(String[] args) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
new ObjectOutputStream(baos).writeObject(new Config("localhost", 8080));
System.out.println("Bytes serializados: " + baos.size());
}
}
🏆 Nível 4: Desafio Corporativo
Problema 12.4 — Monitoramento de Diretórios com WatchService API
Contexto: Monitoramento de Diretórios com WatchService API no contexto de Manipulação de Arquivos e Streams I/O (java.io e java.nio.file).
Requisitos de Execução:
- Registrar listener assíncrono para detectar criação e mutação de arquivos em pasta de logs.
Resultado Esperado
WatchService detectando eventos de sistema de arquivos em tempo real.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_12_4_SeuNome - Envie na tarefa:
Atividade Cap 12 - Manipulação de Arquivos e Streams I/O (java.io e java.nio.file)
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.nio.file.*;
public class WatchServiceDemo {
public static void main(String[] args) throws Exception {
WatchService watcher = FileSystems.getDefault().newWatchService();
System.out.println("WatchService registrado para monitoramento.");
}
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |