Comment faire pour lire un fichier texte à l'aide de System.IO et Visual C#

Traductions disponibles Traductions disponibles
Numéro d'article: 306777 - Voir les produits auxquels s'applique cet article
Pour une version de Microsoft Visual Basic .NET de cet article, voir 302309.

Cet article fait référence à l'espaces de noms bibliothèque de classes Microsoft .NET Framework suivants :
  • System.IO
  • System.Collections
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape vous explique comment récupérer des informations à partir d'un fichier texte (.txt) et utiliser une classe ArrayList pour afficher ces informations à l'utilisateur.

Configuration requise

Microsoft Visual C#

Lire des fichiers texte dans Visual C#

Ouvrir et lire des fichiers pour un accès en lecture sont une partie importante de fonctionnalités (e / S) d'entrée/sortie, même si vous n'avez pas besoin d'écrire dans le fichier en question. Cet exemple ouvre un fichier pour la lecture, est utile pour lire des fichiers texte mais inapproprié pour les fichiers binaires. Cet exemple utilise une des nombreuses méthodes qui sont disponibles pour ouvrir le fichier.

Bien que plusieurs structures de données soient disponibles pour stocker les informations qui sont extrait du fichier, une classe ArrayList est la structure de plus facile à utiliser. Pour ouvrir et lire à partir du fichier, cet exemple utilise les objets de l'espace de noms System.IO , plus particulièrement la classe de System.IO.StreamReader .

note Cet exemple nécessite une forme d'un fichier texte (.txt) à partir duquel lire.

Pour charger et lire un fichier texte à partir de Visual C#, procédez comme suit :
  1. Démarrez Microsoft Visual Studio.
  2. Créez une application console dans Visual C#. Visual Studio crée une classe statique pour vous, avec une procédure Main() vide.
  3. Vérifiez que le projet référence au moins l'espace de noms System . Utilisez l'instruction using sur les espaces de noms System , System.IO et System.Collections afin que vous n'êtes pas nécessaire de qualifier les déclarations de ces espaces de noms plus loin dans votre code. Vous devez utiliser ces instructions avant les autres déclarations.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Pour ouvrir un fichier en lecture, créer une nouvelle instance d'un objet StreamReader et transmettre des chemin du fichier dans le constructeur comme suit :
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Vous devez avoir une variable de chaîne dans lequel stocker chaque ligne du fichier que vous traitez. Parce que vous ajouter ces lignes à une liste de tableaux , déclarer et créer un objet de ce type, également.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Il existe plusieurs façons lire le fichier, y compris la méthode ReadToEnd qui lit dans le fichier entier à la fois. Toutefois, pour cet exemple, vous pouvez utiliser la méthode ReadLine pour avancer à la fois la ligne d'un fichier. Lorsque la fin du fichier est atteinte, cette méthode renvoie une valeur null, qui fournit un moyen de mettre fin à votre boucle. Lorsque vous lirez chaque ligne à partir du fichier, vous pouvez permet la méthode Add de la liste de tableaux d'insérer les lignes dans votre class. ArrayList
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Utiliser une boucle For Each pour écrire le contenu de votre ArrayList nouvellement remplie sur la console comme suit :
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Enregistrez et exécutez votre code, qui génère une liste de votre fichier de la console.

Terminer la liste de code

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

Résolution des problèmes

Il y a plusieurs choses à être conscient de lorsque vous utilisez fichier e / S, notamment les éléments suivants :
  • Chaque fois qu'accéder à un fichier, est il la possibilité que le fichier que vous tentez de lire ou écrire peut ne pas être sur le système ou est peut-être en cours d'utilisation.
  • Cet exemple lit le fichier entier en mémoire avant qu'il traite le fichier. Vous pouvez rencontrer une situation dans laquelle le fichier est trop volumineux pour être contenue dans la mémoire, ou vous ne pas disposez des autorisations accéder au fichier.
Une des ces situations provoquer une exception générée. Il est toujours recommandé de fournir un bloc try... catch pour gérer ces problèmes courants.

Propriétés

Numéro d'article: 306777 - Dernière mise à jour: mardi 28 août 2007 - Version: 2.6
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Initiation
  • Microsoft Visual C# 2008 Express Edition
Mots-clés : 
kbmt kbcollections kbhowtomaster kbio KB306777 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 306777
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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