Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come leggere un file di testo utilizzando System. IO e Visual C#

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I306777
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 306777
Per una versione di Microsoft Visual Basic .NET di questo articolo, vedere 302309.

Questo articolo si riferisce ai seguenti spazi dei nomi di Microsoft.NET Framework Class Library:
  • System. IO
  • System. Collections
Sommario
In questo articolo viene illustrato come recuperare informazioni da un file di testo (txt) e quindi utilizzare una classe ArrayList per visualizzare tali informazioni all'utente.

Requisiti

Microsoft Visual C#

La lettura dei file di testo in Visual C#

Apertura e lettura dei file per l'accesso in lettura costituiscono una parte importante della funzionalità di input/output (IO), anche se non è necessario scrivere il file in questione. Questo esempio viene aperto un file per la lettura, è utile per la lettura dei file di testo ma non adatta per i file binari. In questo esempio viene utilizzato uno dei molti metodi che sono disponibili per l'apertura del file.

Sebbene siano disponibili per archiviare le informazioni recuperate dal file di diverse strutture di dati, una classe ArrayList è la struttura più semplice da utilizzare. Per aprire e leggere il file, in questo esempio vengono utilizzati oggetti dello spazio dei nomi System. IO , in particolare la classe System.IO.StreamReader .

Nota. In questo esempio occorre disporre di un file di testo (txt) da cui leggere.

Per caricare e leggere un file di testo da Visual C#, attenersi alla seguente procedura:
  1. Avviare Microsoft Visual Studio.
  2. Creare una nuova applicazione Console in Visual C#. Visual Studio crea automaticamente una Classe Static insieme a una routine Main () vuota.
  3. Verificare che il progetto faccia riferimento ad almeno lo spazio dei nomi System . Utilizzare l'istruzione using gli spazi dei nomi System, System. IOe System. Collections in modo che non è necessario qualificare dichiarazioni provenienti da questi spazi dei nomi in un secondo momento nel codice. È necessario utilizzare queste istruzioni prima di qualunque altra dichiarazione.
    using System;using System.IO;using System.Collections;					
  4. Per aprire un file per la lettura, creare una nuova istanza di un oggetto StreamReader e passare il percorso del file al costruttore come segue:
    StreamReader objReader = new StreamReader("c:\\test.txt");					
  5. È necessario disporre di una variabile di stringa in cui memorizzare ogni riga del file si elaborano. Poiché tali righe verranno aggiunte a un ArrayList, dichiarare e creare inoltre un oggetto di quel tipo.
    string sLine="";ArrayList arrText = new ArrayList();					
  6. Esistono diversi modi per leggere il file, tra cui il metodo ReadToEnd che legge l'intero file in una sola volta. Tuttavia, in questo esempio, è possibile utilizzare il metodo ReadLine per leggere file una riga alla volta. Quando viene raggiunta la fine del file, questo metodo restituisce un valore null, che consente di terminare il ciclo. Durante la lettura di ogni riga del file, è possibile utilizzare il metodo Add della classe ArrayList per inserire le righe in una classe ArrayList .
    while (sLine != null){	sLine = objReader.ReadLine();	if (sLine != null)		arrText.Add(sLine);}objReader.Close();					
  7. Utilizzare un ciclo For Each per scrivere il contenuto del nuovo ArrayList nella console come segue:
    foreach (string sOutput in arrText)	Console.WriteLine(sOutput);Console.ReadLine();					
  8. Salvare ed eseguire il codice, viene visualizzato il file nella console.

Elenco completo del codice

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();		}	}}				

Risoluzione dei problemi

Esistono diversi aspetti da tenere presente quando si lavora con file i/o, inclusi i seguenti elementi:
  • Ogni volta che si accede a un file, è possibile che il file che si sta tentando di leggere o scrivere non sia nel sistema o potrebbe essere in uso.
  • In questo esempio legge l'intero file in memoria prima di elaborazione del file. Può verificarsi una situazione in cui il file è troppo grande per essere contenuto in memoria o non si disponga delle autorizzazioni necessarie per accedere al file.
Tutti questi casi causare un'eccezione da generare. È sempre buona norma fornire un blocco try... catch per gestire questi problemi comuni.
try-catch

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 306777 - Ultima revisione: 12/30/2012 22:51:00 - Revisione: 6.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2008 Express Edition

  • kbcollections kbhowtomaster kbio kbmt KB306777 KbMtit
Feedback