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

Traduções deste artigo Traduções deste artigo
ID do artigo: 306777 - Exibir os produtos aos quais esse artigo se aplica.
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
Expandir tudo | Recolher tudo

Neste artigo

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.

Propriedades

ID do artigo: 306777 - Última revisão: sexta-feira, 29 de novembro de 2013 - Revisão: 6.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Palavras-chave: 
kbcollections kbhowtomaster kbio KB306777

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com