DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 306777 - Última revisão: sexta-feira, 29 de novembro de 2013 - Revisão: 6.0

Para obter uma versão deste artigo referente ao Microsoft Visual Basic .NET, consulte 302309  (http://support.microsoft.com/kb/302309/pt-br/ ) .

Este artigo se refere aos seguintes namespaces da Biblioteca de Classe Microsoft .NET Framework:
  • System.IO
  • System.Collections

Nesta página

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.

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
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store