Capítulo 14: Arquivos (Leitura e Escrita) 📝🧟

Neste capítulo, vamos aprender a salvar e ler informações em arquivos de texto externos no C#, usando o tema The Last of Us!


📖 Por que usar Arquivos?

Para salvar o progresso ou manter um diário de sobrevivência no apocalipse, precisamos gravar os dados no disco! O C# torna isso extremamente simples com a classe File.


📖 Exemplo Guiado: Registro de Sobreviventes

Vamos criar um programa que grava o nome de um sobrevivente em um arquivo chamado diario.txt.

  1. Crie o arquivo salvar_sobrevivente.cs na pasta src/:
using System;
using System.IO; // Necessário para usar a classe File
 
string caminho = "diario.txt";
string conteudo = "Registro de Sobrevivente\nNome: Joel\nStatus: Saudavel\n";
 
try {
    // Grava todo o texto de uma vez (cria o arquivo se não existir)
    File.WriteAllText(caminho, conteudo);
    Console.WriteLine("Dados salvos no diario.txt com sucesso!");
}
catch (Exception e) {
    Console.WriteLine($"Erro ao salvar arquivo: {e.Message}");
}

🕹️ Como Executar e Testar no VS Code

  1. Execute o projeto usando dotnet run.
  2. Abra o arquivo diario.txt que foi criado na mesma pasta!

📊 Ilustração Visual: Fluxo de Escrita

O C# cuida de abrir e fechar o arquivo automaticamente:

graph LR
    A[Programa] -->|File.WriteAllText| B["📄 Arquivo: diario.txt"]

🛠️ Prática Obrigatória 1: Lendo o Arquivo

Pesquise como usar File.ReadAllText para ler o conteúdo de um arquivo. Crie um programa chamado ler_diario.cs que leia o arquivo diario.txt criado anteriormente e exiba o conteúdo no terminal! Use try/catch para o caso de o arquivo não existir!


🔑 Gabarito de Código

Prática 1: ler_diario.cs

using System;
using System.IO;
 
string caminho = "diario.txt";
 
try {
    // Lê todo o conteúdo de uma vez
    string conteudo = File.ReadAllText(caminho);
    
    Console.WriteLine("--- Conteudo do Diario ---");
    Console.WriteLine(conteudo);
}
catch (Exception e) {
    Console.WriteLine($"Erro ao ler o arquivo: {e.Message}");
}

Capitulo Anterior | Proximo Capitulo