🧩 Exercícios: Manipulação de Arquivos e I/O: os, io, bufio
Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 14.1 — Leitura e Escrita Simples com os.WriteFile e os.ReadFile
Contexto: Leitura e Escrita Simples com os.WriteFile e os.ReadFile no contexto de Manipulação de Arquivos e I/O: os, io, bufio.
Requisitos de Execução:
- Gravar dados em arquivo e recuperar o conteúdo completo em slice de bytes.
Resultado Esperado
Arquivo gravado e lido utilizando funções utilitárias do pacote os.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_14_1_SeuNome - Envie na tarefa:
Atividade Cap 14 - Manipulação de Arquivos e I/O: os, io, bufio
🔑 Gabarito de Código & Solução Comentada
package main
import (
"fmt"
"os"
)
func main() {
dados := []byte("AUDITORIA GO: Servico Operacional\n")
os.WriteFile("log.txt", dados, 0644)
lido, _ := os.ReadFile("log.txt")
fmt.Printf("Lido: %s", string(lido))
}
🔍 Nível 2: Prática
Problema 14.2 — Leitura Linha a Linha com bufio.Scanner
Contexto: Leitura Linha a Linha com bufio.Scanner no contexto de Manipulação de Arquivos e I/O: os, io, bufio.
Requisitos de Execução:
- Processar arquivo texto linha por linha com
scanner := bufio.NewScanner(file).
Resultado Esperado
Arquivo processado sequencialmente com consumo mínimo de memória.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_14_2_SeuNome - Envie na tarefa:
Atividade Cap 14 - Manipulação de Arquivos e I/O: os, io, bufio
🔑 Gabarito de Código & Solução Comentada
package main
import (
"bufio"
"fmt"
"strings"
)
func main() {
conteudo := "Linha A\nLinha B\nLinha C"
scanner := bufio.NewScanner(strings.NewReader(conteudo))
for scanner.Scan() {
fmt.Println("Scanner:", scanner.Text())
}
}
⚡ Nível 3: Integração
Problema 14.3 — Cópia em Stream com io.Copy() e Buffers Delimitados
Contexto: Cópia em Stream com io.Copy() e Buffers Delimitados no contexto de Manipulação de Arquivos e I/O: os, io, bufio.
Requisitos de Execução:
- Transferir dados entre streams com
io.Copy(destino, origem)sem carregar o arquivo inteiro na RAM.
Resultado Esperado
Stream I/O transferida com alta vazão.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_14_3_SeuNome - Envie na tarefa:
Atividade Cap 14 - Manipulação de Arquivos e I/O: os, io, bufio
🔑 Gabarito de Código & Solução Comentada
package main
import (
"bytes"
"fmt"
"io"
"strings"
)
func main() {
origem := strings.NewReader("Payload em stream")
var destino bytes.Buffer
escritos, _ := io.Copy(&destino, origem)
fmt.Printf("Bytes transferidos via stream: %d\n", escritos)
}
🏆 Nível 4: Desafio Corporativo
Problema 14.4 — Manipulação de Arquivos Temporários com os.CreateTemp e Cleanup
Contexto: Manipulação de Arquivos Temporários com os.CreateTemp e Cleanup no contexto de Manipulação de Arquivos e I/O: os, io, bufio.
Requisitos de Execução:
- Criar arquivo temporário com
os.CreateTemp('', 'prefix-*.tmp')garantindo deleção no defer comos.Remove.
Resultado Esperado
Arquivo temporário criado e purgado no encerramento.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_14_4_SeuNome - Envie na tarefa:
Atividade Cap 14 - Manipulação de Arquivos e I/O: os, io, bufio
🔑 Gabarito de Código & Solução Comentada
package main
import (
"fmt"
"os"
)
func main() {
tmp, err := os.CreateTemp("", "audit-*.tmp")
if err != nil { return }
defer os.Remove(tmp.Name()) // Cleanup
fmt.Printf("Arquivo temporario seguro: %s\n", tmp.Name())
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |