Tratamento de ficheiros de texto
O tratamento de ficheiros de texto em C# é uma tarefa comum e pode ser realizada de forma simples e eficiente utilizando as classes do namespace System.IO
. A seguir, veja como criar, ler, escrever e acrescentar dados em arquivos de texto.
1. Criar e Escrever num Ficheiro de Texto
Para criar e escrever em um ficheiro de texto, utilize a classe StreamWriter
ou métodos diretos da classe File
.
Exemplo com StreamWriter
using System.IO;
try
{
StreamWriter sw = new StreamWriter("exemplo.txt");
sw.WriteLine("Primeira linha do ficheiro.");
sw.WriteLine("Segunda linha do ficheiro.");
sw.Close();
}
catch (Exception e)
{
Console.WriteLine("Erro: " + e.Message);
}
finally
{
Console.WriteLine("Operação finalizada.");
}
Esse código cria (ou sobrescreve) o ficheiro exemplo.txt
e grava duas linhas de texto nele.
Exemplo com File.WriteAllText
File.WriteAllText("exemplo2.txt", "Conteúdo do ficheiro usando File.WriteAllText.");
Este método é útil para gravar todo o conteúdo de uma vez só.
2. Ler um Ficheiro de Texto
A leitura pode ser feita linha a linha com StreamReader
ou de uma vez com File.ReadAllText
.
Exemplo com StreamReader
using System.IO;
try
{
StreamReader sr = new StreamReader("exemplo.txt");
string linha = sr.ReadLine();
while (linha != null)
{
Console.WriteLine(linha);
linha = sr.ReadLine();
}
sr.Close();
}
catch (Exception e)
{
Console.WriteLine("Erro: " + e.Message);
}
finally
{
Console.WriteLine("Leitura finalizada.");
}
Esse exemplo lê e exibe cada linha do ficheiro até o final.
Exemplo com File.ReadAllText
string conteudo = File.ReadAllText("exemplo2.txt");
Console.WriteLine(conteudo);
Ideal para ficheiros pequenos, pois lê todo o conteúdo de uma vez.
3. Acrescentar Dados a um Ficheiro
Para adicionar texto ao final de um ficheiro sem apagar o conteúdo existente, utilize o segundo parâmetro do StreamWriter
ou métodos como File.AppendAllText
.
Exemplo com StreamWriter (modo append)
using System.IO;
StreamWriter sw = new StreamWriter("exemplo.txt", true);
sw.WriteLine("Linha adicionada ao ficheiro.");
sw.Close();
O parâmetro true
indica que o texto será acrescentado ao final do ficheiro.
Exemplo com File.AppendAllText
File.AppendAllText("exemplo2.txt", "\nNova linha adicionada.");
Simples e direto para adicionar pequenas quantidades de texto.
4. Boas Práticas
- Utilize sempre blocos
try-catch-finally
para tratar possíveis exceções, como ficheiros inexistentes ou problemas de permissão. - Use o bloco
using
para garantir que os recursos do sistema sejam libertados corretamente ao trabalhar comStreamReader
eStreamWriter
. - Prefira métodos assíncronos (
ReadAllTextAsync
,WriteAllTextAsync
) em aplicações que exigem desempenho ou responsividade.
Resumo
- Use
StreamWriter
eStreamReader
para manipulação linha a linha. - Use métodos da classe
File
para operações simples e diretas. - Trate sempre exceções para evitar falhas inesperadas.
- Escolha o método mais adequado conforme o tamanho do ficheiro e a necessidade de desempenho.