🎯 Objetivo: Neste capítulo, você aprenderá a ler e escrever dados em arquivos de texto, uma das formas mais simples e diretas de persistência de dados. Essa habilidade é essencial para lidar com logs, dados de configuração e outras informações que não requerem um banco de dados complexo.


🤔 Por Que Manipular Arquivos Texto?

Nem toda persistência de dados exige a complexidade de um banco de dados ou a estrutura de um JSON. Para tarefas simples, como:

A manipulação de arquivos de texto é a solução ideal, sendo leve, rápida e fácil de implementar.


✨ O Namespace System.IO

Todas as classes e métodos necessários para a manipulação de arquivos e diretórios em C# estão no namespace System.IO. Para começar, você precisará adicionar um using System.IO; no topo do seu arquivo de código.


✍️ Escrevendo em Arquivos (Write)

Existem várias maneiras de escrever em arquivos. A mais simples e segura para arquivos de texto é usar a classe estática File, que oferece métodos de alto nível para operações comuns.


Escrevendo Todo o Conteúdo de uma Vez: File.WriteAllText

Este método é ideal quando você tem um pequeno conteúdo (uma string) e quer escrevê-lo todo de uma vez no arquivo. Se o arquivo já existir, ele será sobrescrito.

using System;
using System.IO;

public class EscreverArquivo
{
    public static void Main(string[] args)
    {
        string nomeArquivo = "exemplo.txt";
        string conteudo = "Olá, C#! Este é um exemplo de escrita em arquivo de texto.";
        
        try
        {
            File.WriteAllText(nomeArquivo, conteudo);
            Console.WriteLine($"Conteúdo escrito com sucesso em '{nomeArquivo}'.");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Ocorreu um erro: {ex.Message}");
        }
    }
}

Adicionando Conteúdo ao Final de um Arquivo: File.AppendAllText

Se você quiser adicionar novas linhas ou conteúdo ao final de um arquivo, sem apagar o que já existe, use o método AppendAllText.

// Continuação do exemplo anterior
string novaLinha = Environment.NewLine + "Esta é uma nova linha adicionada."; // Environment.NewLine é específico do SO
File.AppendAllText(nomeArquivo, novaLinha);
Console.WriteLine("Nova linha adicionada.");