Você está offline; aguardando reconexão

PROCEDIMENTOS: Ler um arquivo de texto usando o System.IO e o Visual Basic .NET

Este artigo foi publicado anteriormente em BR302309
Este artigo descreve uma versão beta de um produto Microsoft. As informações deste artigo são fornecidas no estado em que se encontram e estão sujeitas a alterações sem aviso prévio.

Não existe suporte formal a produto disponível por parte da Microsoft para esse produto beta. Para obter informações sobre o suporte a uma versão beta, consulte a documentação incluída nos arquivos do produto beta ou verifique no site da Web a partir do qual foi feito o download da versão.

Para obter uma versão deste artigo no Microsoft Visual C# .NET, consulte 306777.
Sumário
Este artigo demonstra como recuperar informações de um arquivo de texto e usar uma classe ArrayList para exibir essas informações ao usuário. Ele está dividido nas seguintes seções:

Requisitos

Microsoft Visual Basic .NET

Lendo arquivos de texto no Visual Basic .NET

Abrir e ler arquivos para acesso de leitura é uma parte importante da funcionalidade de entrada/saída (E/S), mesmo que não seja necessário gravar no arquivo em questão. Este exemplo abre um arquivo para leitura, o que é útil para arquivos de texto, mas inapropriado para arquivos binários. Além disso, usa um dos vários métodos disponíveis para abrir o arquivo. Embora muitas estruturas de dados estejam disponíveis para armazenar informações recuperadas do arquivo, uma classe ArrayList é a estrutura mais fácil de ser usada. Para abrir e ler a partir do arquivo, este exemplo usa objetos do espaço para nomes System.IO, especificamente a classe System.IO.StreamReader.

OBSERVAÇÃO: Este exemplo requer algum formato de arquivo de texto (.txt) a ser usado para leitura.

Para carregar e ler um arquivo de texto a partir do Visual Basic .NET, siga estas etapas:
  1. Abra o Visual Studio .NET. Crie um novo aplicativo de console no Visual Basic .NET. O Visual Studio cria um Module para você, juntamente com um procedimento Main() vazio.
  2. Certifique-se de que o projeto faça referência pelo menos ao espaço para nomes System. Use a instrução Imports nos espaços para nomes System, System.IO e System.Collections para que não seja necessário qualificar declarações a partir desses espaços para nomes posteriormente no código. É necessário usar essas instruções antes de qualquer declaração.
    Imports SystemImports System.IOImports System.Collections
  3. Para abrir um arquivo para leitura, crie uma nova instância de um objeto StreamReader e passe o caminho do arquivo no construtor, da seguinte maneira:
    Dim objReader As New StreamReader("c:\test.txt")
  4. Será necessária uma variável do tipo string na qual cada linha do arquivo será armazenada à medida que o processamento for executado. Como você adicionará essas linhas a uma ArrayList, declare e crie um objeto desse tipo também.
    Dim sLine As String = ""Dim arrText As New ArrayList()
  5. Existem várias maneiras de ler o arquivo, incluindo o método ReadToEnd, que lê o arquivo inteiro de uma vez. Entretanto, para este exemplo, você pode usar o método ReadLine para trazer uma linha do arquivo por vez. Quando o final do arquivo for alcançado, esse método retornará "Nothing", que fornece uma maneira de finalizar o loop. À medida que cada linha do arquivo é lida, você pode usar o método Add de ArrayList para inserir as linhas na classe ArrayList.
    Do    sLine = objReader.ReadLine()    If Not sLine Is Nothing Then        arrText.Add(sLine)    End IfLoop Until sLine Is NothingobjReader.Close()
  6. Use um loop "For Each" para gravar o conteúdo da ArrayList recém-preenchida no console, da seguinte maneira:
    For Each sLine In arrText    Console.WriteLine(sLine)NextConsole.ReadLine()
  7. Salve e execute seu código, o que produz uma listagem do arquivo para o console.

Listagem de códigos completa

Imports SystemImports System.IOImports System.CollectionsModule Module1    Sub Main()        Dim objReader As New StreamReader("c:\test.txt")        Dim sLine As String = ""        Dim arrText As New ArrayList()        Do            sLine = objReader.ReadLine()            If Not sLine Is Nothing Then                arrText.Add(sLine)            End If        Loop Until sLine Is Nothing        objReader.Close()        For Each sLine In arrText            Console.WriteLine(sLine)        Next        Console.ReadLine()    End SubEnd Module

Armadilhas

Existem vários itens com os quais se preocupar durante o trabalho com a E/S de arquivo, incluindo:
  • Sempre que um arquivo é acessado, existe a possibilidade de que o arquivo que você está tentando ler ou gravar não esteja no sistema ou possa estar em uso.
  • Este exemplo lê o arquivo inteiro na memória antes de processá-lo. Você pode encontrar uma situação na qual o arquivo é muito grande para ser mantido na memória ou pode não ter permissões para acessá-lo.
Qualquer uma dessas situações faz com que uma exceção seja gerada. Sempre é útil fornecer um bloco try...catch para tratar esses problemas comuns.

REFERÊNCIAS

Para obter mais informações, consulte o seguinte site do Microsoft .NET SDK QuickStart Tutorials na Web:
try-catch VB
Propriedades

ID do Artigo: 302309 - Última Revisão: 04/09/2003 14:41:00 - Revisão: 1.0

Microsoft Visual Basic .NET 2002 Standard Edition

  • kbhowto kbhowtomaster kbnokeyword KB302309
Comentários