Como ler um ficheiro de texto através da utilização de System. IO e Visual c#

Traduções de Artigos Traduções de Artigos
Artigo: 306777 - Ver produtos para os quais este artigo se aplica.
Para obter uma versão do Microsoft Visual Basic .NET do presente artigo, consulte 302309.

Este artigo refere-se os espaços de nomes de biblioteca de classes do Microsoft .NET Framework seguintes:
  • System. IO
  • System.Collections
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo mostra como obter informações a partir de um ficheiro de texto (. txt) e, em seguida, utilize uma classe de ArrayList para apresentar essas informações ao utilizador.

Requisitos

Microsoft Visual c#

Ler ficheiros de texto no Visual c#

Abrir e ler ficheiros para acesso de leitura é uma parte importante da funcionalidade de (es) de entrada/saída, mesmo que não necessita de escrever no ficheiro em questão. Este exemplo abre um ficheiro para leitura, que é útil para a leitura de ficheiros de texto mas impróprias para ficheiros binários. Este exemplo utiliza um dos muitos métodos que estão disponíveis para abrir o ficheiro.

Apesar de muitas estruturas de dados estão disponíveis para armazenar informações que são obtidas a partir do ficheiro, uma classe de ArrayList é a estrutura mais fácil de utilizar. Para abrir e ler o ficheiro, este exemplo utiliza objectos do espaço de nomes System. IO , especificamente a classe System.IO.StreamReader .

Nota Este exemplo requer alguma forma de um ficheiro de texto (. txt) a partir da qual pretende ler.

Para carregar e leia um ficheiro de texto do Visual c#, siga estes passos:
  1. Inicie o Microsoft Visual Studio.
  2. Crie uma nova aplicação de consola no Visual c#. Visual Studio cria uma Classe estática , juntamente com um procedimento de Main() vazio.
  3. Certifique-se de que o projecto, pelo menos, referencia o espaço de nomes do sistema . Utilize a instrução a utilizar os espaços de nomes do sistema, System. IOe System.Collections para que não são necessárias para qualificar as declarações destes espaços de nomes mais tarde no código. Tem de utilizar estas instruções antes de quaisquer outras declarações.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Para abrir um ficheiro para leitura, criar uma nova instância de um objecto de StreamReader e passar o caminho do ficheiro para o construtor do seguinte modo:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Tem de ter uma cadeia variável para armazenar cada linha do ficheiro como processar. Uma vez que vai adicionar estas linhas para um ArrayList, declarar e criar também um objecto desse tipo.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Existem várias formas para ler o ficheiro, incluindo o método de ReadToEnd que lê em todo o ficheiro ao mesmo tempo. No entanto, para este exemplo, pode utilizar o método ReadLine para colocar o ficheiro uma linha ao mesmo tempo. Quando é atingido o fim do ficheiro, este método devolve um valor nulo, que fornece uma forma para terminar o ciclo. À medida que lê cada linha do ficheiro, pode utilizar o método Add da ArrayList para inserir as linhas na sua classe ArrayList .
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Utilize um ciclo para cada para escrever o conteúdo da sua recentemente preenchido ArrayList à consola da seguinte forma:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Guarde e execute o código que produz uma listagem do ficheiro para a consola.

Lista de código completa

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

Resolução de problemas

Existem várias coisas para ter em consideração quando trabalha com ficheiros e/s, incluindo os seguintes itens:
  • Sempre que aceder a um ficheiro, não existe a possibilidade de que o ficheiro que está a tentar ler ou escrever poderá não estar no sistema ou pode estar em utilização.
  • Este exemplo ler todo o ficheiro para a memória antes de processar o ficheiro. Poderá encontrar uma situação em que o ficheiro é demasiado grande para ser mantidos na memória, ou pode não ter permissões para aceder ao ficheiro.
Nenhuma destas situações causar uma excepção ser aumentado. É sempre boa prática para fornecer um bloco tente... catch para processar estes problemas comuns.

Propriedades

Artigo: 306777 - Última revisão: 25 de maio de 2013 - Revisão: 3.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 kbmt KB306777 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 306777

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