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.

									Imports 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.
									Dim vArquivo As String = Server.MapPath("Executaveis.txt")
								
É interessante que seja feita uma verificação para termos certeza de que o arquivo existe no caminho indicado.
									Dim vArquivo As String = Server.MapPath("Executaveis.txt")
									If File.Exists(vArquivo) Then
										
									End If
								
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.
									Dim vArquivo As String = Server.MapPath("Executaveis.txt")
									If File.Exists(vArquivo) Then
										Dim reader As New StreamReader(vArquivo)
									End If
								
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:
									Dim vArquivo As String = Server.MapPath("Executaveis.txt")
									If File.Exists(vArquivo) Then
										Dim reader As New StreamReader(vArquivo)
										Do While Not reader.EndOfStream
											Response.Write(reader.ReadLine & "
") Loop End If
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:
									Imports System.IO

									Partial Class _Default
										Inherits System.Web.UI.Page

										Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
											Dim vArquivo As String = Server.MapPath("Executaveis.txt")
											If File.Exists(vArquivo) Then
												Dim reader As New StreamReader(vArquivo)
												Do While Not reader.EndOfStream
													Response.Write(reader.ReadLine & "
") Loop reader.Close() End If End Sub End Class
E o resultado em nossa pagina:
Resultado
Espero que seja útil. Abraços...