Lendo arquivos em C#
03/01/2022
André Baltieri

Neste artigo vamos aprender algumas formas que temos para ler arquivos em C# com o menor esforço possível.

Lendo arquivos em C#

Ler arquivos em C# não é uma tarefa difícil e a forma mais simples e direta de fazer isto é utilizando o método ReadAllText da classe estática File.

No exemplo abaixo temos um programa completo que faz a leitura de um arquivo e exibe seu conteúdo na tela utilizando o Console.WriteLine.

// Lê um arquivo inteiro
var data = File.ReadAllText("C:\\text-file.txt");  
Console.WriteLine(data);

Lendo arquivos em C# linha a linha

Como notamos no método anterior, não iteramos sobre o arquivo, apenas pegamos seu conteúdo e exibimos na tela.

Para iterar pelas linhas do arquivo, temos um método chamado ReadAllLines que retorna um Array de string, que pode ser iterado futuramente.

No exemplo abaixo temos um programa completo que faz a leitura de um arquivo e exibe seu conteúdo na tela utilizando o Console.WriteLine.

// Lê um arquivo linha a linha
var lines = File.ReadAllLines("C:\\text-file.txt");
foreach (var line in lines)
    Console.WriteLine(line);

StreamReader

Uma outra forma muito solicitada é a leitura de arquivos linha a linha. Na verdade se um arquivo é muito grande, ler ele por completo pode acarretar em estouro de memória.

Para isto, uma ótima solução é utilizar o StreamReader em conjunto ao using que fará a leitura do arquivo em blocos (Streaming).

Toda vez que fazemos um Stream, ocorre a possibilidade do arquivo ficar aberto por mais tempo que o necessário em memória, por isto é quase que obrigatório o uso do Dispose que neste caso já é feito pelo using.

No exemplo abaixo temos um programa completo que faz a leitura de um arquivo e exibe seu conteúdo na tela utilizando o Console.WriteLine.

using var file = new StreamReader("C:\\text-file.txt");
string? line;

while ((line = file.ReadLine()) != null)
    Console.WriteLine(line);

file.Close();

Conclusão

C# não é difícil, muitas vezes nós complicamos muito as coisas que podem (E devem) ser simples! Ler arquivos é uma tarefa comum em todas as linguagens e o C# torna isto simples e direto ao ponto!

Conheça o autor

André Baltieri

Microsoft MVP

Me dedico ao desenvolvimento de software desde 2003, sendo minha maior especialidade o Desenvolvimento Web. Durante esta jornada pude trabalhar presencialmente aqui no Brasil e Estados Unidos, atender remotamente times da ?ndia, Inglaterra e Holanda, receber 8x Microsoft MVP e realizar diversas consultorias em empresas e projetos de todos os tamanhos.

An unhandled error has occurred. Reload 🗙