Pular para conteúdo

Aula 07 - Manipulação de Arquivos e JSON 📁

Persistindo Dados e Comunicando-se com o Mundo


Agenda de Hoje 📅

  1. O Pacote os e o Sistema de Arquivos
  2. Leitura e Escrita de Arquivos
  3. Permissões de Acesso (Chmod)
  4. Serialização com JSON
  5. Struct Tags e Mapeamento
  6. Mini-Projeto: CLI To-Do com JSON

1. Falando com o SO 🖥️

  • Go é excelente para ferramentas de linha de comando.
  • Pacote os abstrai a diferença entre Windows/Linux.

2. Escrita Simplificada ✍️

texto := "Dados do sistema"
err := os.WriteFile("log.txt", []byte(texto), 0644)
  • 0644: Permissão de leitura/escrita padrão.

3. JSON: A Língua do Backend 🏗️

  • Go possui suporte nativo via encoding/json.
  • Marshal: Struct -> JSON.
  • Unmarshal: JSON -> Struct.

4. O Poder das Struct Tags 🏷️

  • Permite renomear chaves no JSON.
type User struct {
    Nome  string `json:"full_name"`
    Senha string `json:"-"` // Oculta no JSON
}

5. Fluxo de Dados JSON 📊

graph LR
    A[Struct em Memória] -->|json.Marshal| B[Slice de Bytes]
    B -->|os.WriteFile| C[(Arquivo config.json)]
    C -->|os.ReadFile| B
    B -->|json.Unmarshal| A

6. Mini-Projeto: To-Do List CLI 🚀

  • Uma struct Tarefa (ID, Texto, Status).
  • Salvar um slice de tarefas em tarefas.json.
  • Ler e exibir ao abrir o programa.

Resumo da Aula ✅

  • Go trata arquivos de forma binária ([]byte).
  • JSON é mapeado diretamente para structs via Tags.
  • Defer é vital para liberar o arquivo após o uso.

Próxima Aula: Concorrência ⚡

  • Goroutines: Rodando em paralelo.
  • Channels: A comunicação segura.

Dúvidas? 🤔

"Dados são o novo petróleo, mas o JSON é o oleoduto."