Lendo arquivos texto

 
Este artigo traz um assunto simples, mas que quase todos os desenvolvedores um dia necessitaram ou necessitarão fazer, que é ler um arquivo de texto.

Temos um arquivo de texto chamado Executaveis.txt que esta no mesmo nível do nosso formulário. Este arquivo possui cinco linhas com caminhos de alguns softwares.

Arquivo texto:
NewItem

No formulário iremos utilizar apenas o Page_Load para o nosso teste. Para trabalhar com arquivo é necessário importar a classe IO.

									using System.IO;
								
No Page_Load do formulário primeiro iremos declarar uma variável do tipo string que irá receber o caminho completo do nosso documento texto.
									string vArquivo = Server.MapPath("Executaveis.txt");
								
É interessante que seja feita uma verificação para termos certeza de que o arquivo existe no caminho indicado.
									string vArquivo = Server.MapPath("Executaveis.txt");
									if (File.Exists(vArquivo) {
										
									}
								
Através da classe File utilizada acima, podemos trabalhar com vários métodos como Copy, Create, Delete e o Exists.
Iremos trabalhar com a classe StreamReader que é uma implementação da classe IO, e foi desenvolvida justamente para receber caracteres.

Declaramos a variável reader.
									string vArquivo = Server.MapPath("Executaveis.txt");
									if (File.Exists(vArquivo) {
										StreamReader reader = new StreamReader(vArquivo);
									}
								
A classe StreamReader possui uma propriedade e algumas funções. A sua propriedade é o EndOfStream que lê do primeiro ao último caracter do arquivo. Além desta propriedade a classe possui algumas funções, onde as principais são:

Close - responsável por fechar os objetos que utilizam a classe StreamReader.
Dispose - responsável por destruir todos os recursos utilizados pelo objeto System.IO.TextReader.
Read - responsável por ler todos os caracter por caracter.
ReadLine - responsável por ler determinada linha do inicio ao fim.
ReadToEnd - responsável por fazer a leitura de todo o documento

Agora que conhecemos as principais funções da classe, iremos criar um while para percorrer todo o arquivo e a cada linha que encontre, ele escreva em nosso formulário:
									string vArquivo = Server.MapPath("Executaveis.txt");
									if (File.Exists(vArquivo) {
										StreamReader reader = new StreamReader(vArquivo);
										while (!reader.EndOfStream)
											Response.Write(reader.ReadLine + "
"); } }
E no final do nosso Loop é necessário fechar nosso arquivo utilizando a propriedade já explicada Close:

reader.Close()

No final então, nosso código ficou da seguinte forma:
									using System;
									using System.Collections;
									using System.Configuration;
									using System.Data;
									using System.Web;
									using System.Web.Security;
									using System.Web.UI;
									using System.Web.UI.HtmlControls;
									using System.Web.UI.WebControls;
									using System.Web.UI.WebControls.WebParts;
									using System.IO;

									public partial class _Default : System.Web.UI.Page {
										protected void Page_Load(object sender, EventArgs e) {
											string vArquivo = Server.MapPath("Executaveis.txt");
											if (File.Exists(vArquivo) {
												StreamReader reader = new StreamReader(vArquivo);
												while (!reader.EndOfStream)
													Response.Write(reader.ReadLine + "
"); } reader.Close(); } } }
E o resultado em nossa pagina:
Resultado
Espero que seja útil. Abraços...