Você está offline; aguardando reconexão

Não há suporte para seu navegador

Você precisa atualizar seu navegador para usar o site.

Atualize para a versão mais recente do Internet Explorer

Como ler um arquivo de texto usando System.IO e o Visual C#

Para obter uma versão deste artigo referente ao Microsoft Visual Basic .NET, consulte 302309.

Este artigo se refere aos seguintes namespaces da Biblioteca de Classe Microsoft .NET Framework:
  • System.IO
  • System.Collections
Sumário
Este artigo passo a passo mostra como recuperar informações de um arquivo de texto (.txt) e, em seguida, usar uma classe ArrayList para exibir essas informações ao usuário.

Requisitos

Microsoft Visual C#

Lendo arquivos de texto em Visual C#

Abrir e ler arquivos para acesso de leitura é uma parte importante da funcionalidade de entrada/saída (E/S), mesmo que você não precise gravar no arquivo em questão. Este exemplo abre um arquivo para leitura, o que é útil para ler arquivos de texto, mas inadequado para arquivos binários. Este exemplo usa um dos muitos métodos que estão 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 usar. Para abrir e ler o arquivo, este exemplo usa objetos do namespace System.IO, especificamente a classe System.IO.StreamReader.

Observação Este exemplo requer um arquivo de texto (.txt) a ser usado para leitura.

Para carregar e ler um arquivo de texto do Visual C#, siga estes passos:
  1. Inicie o Microsoft Visual Studio.
  2. Crie um novo aplicativo de Console no Visual C#. O Visual Studio cria uma Classe Estática para você, juntamente com um procedimento Main() vazio.
  3. Verifique se o projeto faz referência pelo menos ao namespace System. Uso a instrução using nos namespaces System, System.IO e System.Collections para que você não precise qualificar declarações desses namespaces mais tarde no seu código. Você deve usar estas instruções antes de quaisquer outras declarações.
    using System;using System.IO;usando System. Collections;					
  4. Para abrir um arquivo para leitura, crie uma nova instância de um objeto StreamReader e transmita o caminho do arquivo para o construtor da seguinte maneira:
    StreamReader objReader = new StreamReader("c:\\test.txt");					
  5. Você deve ter uma variável string para armazenar cada linha do arquivo como processar. Como você adicionará essas linhas a um ArrayList, declare e crie um objeto desse tipo também.
    string sLine = "";ArrayList arrText = novo ArrayList ();					
  6. Existem várias maneiras de ler o arquivo, incluindo o método ReadToEnd que lê o arquivo inteiro de uma só vez. No entanto, para este exemplo, você pode usar o método ReadLine para trazer uma linha de cada vez no arquivo. Quando o final do arquivo é atingido, esse método retorna um valor nulo, que fornece uma maneira de finalizar o loop. Enquanto você lê cada linha do arquivo, é possível usar o método Add de ArrayList para inserir as linhas na sua classe ArrayList.
    enquanto (sLine! = null){	sLine = objReader.ReadLine();	if (sLine != null)		arrText.Add(sLine);}objReader;					
  7. Use um loop For Each para gravar no console o conteúdo do seu ArrayList recentemente preenchido, da seguinte maneira:
    foreach (cadeia de caracteres sOutput em arrText)	Console.WriteLine(sOutput);Console.ReadLine();					
  8. Salve e execute seu código, que produz uma listagem do seu arquivo para o console.

Lista completa de códigos

using System;using System.IO;usando System. Collections;namespace TextFileReader_csharp{	/// <summary>	/ / / Descrição do resumo de Class1.	/// </summary>	classe Class1	{		static void Main (string [] args)		{			StreamReader objReader = new StreamReader("c:\\test.txt");			string sLine = "";			ArrayList arrText = novo ArrayList ();			enquanto (sLine! = null)			{				sLine = objReader.ReadLine();				if (sLine != null)					arrText.Add(sLine);			}                        objReader;			foreach (cadeia de caracteres sOutput em arrText)				Console.WriteLine(sOutput);			Console.ReadLine();		}	}}				

Solução de problemas

Há várias coisas para estar ciente ao trabalhar com o arquivo de e/s, incluindo os seguintes itens:
  • Sempre que você acessa um arquivo, existe a possibilidade de que o arquivo no qual você está tentando ler ou gravar não esteja no sistema ou esteja em uso.
  • Este exemplo lê o arquivo inteiro na memória antes que ele processa o arquivo. Você pode se deparar com uma situação na qual o arquivo é muito grande para ser mantido na memória, ou talvez você não tenha permissões para acessar esse arquivo.
Qualquer uma dessas situações causam uma exceção a ser levantada. É sempre recomendável fornecer um bloco try...catch para lidar com esses problemas comuns.
try-catch
Propriedades

ID do Artigo: 306777 - Última Revisão: 11/29/2013 21:41:00 - Revisão: 6.0

  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
  • kbcollections kbhowtomaster kbio KB306777
Comentários
mp;t=">c.gif?DI=4050&did=1&t=">TagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >text/javascript' src='" + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");