Comment faire pour lire et écrire dans un fichier texte à l'aide de Visual C#

Traductions disponibles Traductions disponibles
Numéro d'article: 816149 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape explique comment lire et écrire dans un fichier texte à l'aide de Visual C#.

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs dont vous avez besoin :
  • Visual C#
Cet article suppose que vous êtes familiarisé avec la rubrique suivante :
  • Visual C#

Lecture et de fichiers texte écriture

Read a Text File section de cet article explique comment utiliser la classe StreamReader pour lire un fichier texte. L' Write a Text File (Example 1) et Write a Text File (Example 2) sections expliquent comment utiliser la classe StreamWriter pour écrire du texte dans un fichier.

Lire un fichier texte

Le code suivant utilise la classe StreamReader pour ouvrir, lire et fermez le fichier texte. Vous pouvez transmettre le chemin d'accès d'un fichier texte au constructeur StreamReader pour ouvrir le fichier automatiquement. La méthode ReadLine lit chaque ligne de texte et incrémente le pointeur de fichier pour la ligne suivante comme il lit. Lorsque la méthode ReadLine atteint la fin du fichier, elle renvoie une référence nulle.
  1. Créez un fichier de texte exemple dans le bloc-notes. Pour ce faire, procédez comme suit :
    1. Collez le texte suivant dans le Bloc-notes :
      hello world
    2. Enregistrez le fichier en tant qu'exemple.txt.
  2. Démarrez Microsoft Visual Studio.
  3. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .
  4. Cliquez sur projets Visual C# sous types de projet , puis cliquez sur application console sous modèles

    note Dans Visual Studio 2005 ou Visual Studio 2008, cliquez sur Visual C# sous types de projet , puis cliquez sur application console sous modèles .
  5. Ajoutez le code suivant au début du fichier Class1.cs :
    using System.IO;
    Remarque dans Visual Studio 2005 ou Visual Studio 2008, le fichier par défaut est Program.cs.
  6. Ajoutez le code suivant à la méthode main :
    String line;
    try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
       finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    
  7. Dans le menu Déboguer , cliquez sur Démarrer pour compiler et exécuter l'application. Appuyez sur ENTRÉE pour fermer la fenêtre de console. La fenêtre de la console affiche le contenu du fichier exemple.txt.
    Hello world

Écrire un fichier texte (exemple 1)

Le code suivant utilise la classe StreamWriter pour ouvrir, écriture et fermez le fichier texte. De manière similaire à la classe StreamReader , vous pouvez transmettre le chemin d'accès d'un fichier texte au constructeur StreamWriter pour ouvrir le fichier automatiquement. La méthode WriteLine écrit une ligne complète de texte dans le fichier texte.
  1. Démarrez Visual Studio.
  2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .
  3. Cliquez sur projets Visual C# sous types de projet , puis cliquez sur application console sous modèles .

    note Dans Visual Studio 2005 ou Visual Studio 2008, cliquez sur Visual C# sous types de projet , puis cliquez sur application console CLR sous modèles .
  4. Ajoutez le code suivant au début du fichier Class1.cs :
    using System.IO;
  5. Ajoutez le code suivant à la méthode main :
    try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. Dans le menu Déboguer , cliquez sur Démarrer pour compiler et exécuter l'application. Ce code crée un fichier est nommé Test.txt sur lecteur c. ouvrir Test.txt dans un éditeur de texte tel que le bloc-notes. Test.txt contient deux lignes de texte :
    Hello World!!
    From the StreamWriter class
    
    À partir de la classe StreamWriter

Écrire un fichier texte (exemple 2)

Le code suivant utilise la classe StreamWriter pour ouvrir, écriture et fermez le fichier texte. Contrairement à l'exemple précédent, ce code transmet deux paramètres supplémentaires au constructeur. Le premier paramètre est le chemin d'accès et le nom fichier du fichier. Le deuxième paramètre, la valeur True , indique que le fichier est ouvert dans Ajouter mode. Si vous spécifiez a la valeur False pour le deuxième paramètre, le contenu du fichier est remplacé à chaque exécution le code. Le troisième paramètre indique Unicode , afin que StreamWriter code le fichier au format Unicode. Vous pouvez également spécifier les méthodes de codage suivantes pour le troisième paramètre :
  • ASC11
  • Unicode
  • UTF7
  • UTF8
La méthode Write est similaire à la méthode WriteLine , sauf que la méthode Write ne pas incorpore automatiquement un retour chariot ou de ligne saut combinaison de caractères (CR/LF). Cela est utile lorsque vous souhaitez écrire un caractère à la fois.
  1. Démarrez Visual Studio.
  2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .
  3. Cliquez sur projets Visual C# sous types de projet , puis cliquez sur application console sous modèles

    note Dans Visual Studio 2005 ou Visual Studio 2008, cliquez sur Visual C# sous types de projet , puis cliquez sur application console sous modèles
  4. Ajoutez le code suivant au début du fichier Class1.cs :
    using System.IO;
    using System.Text;
    Remarque dans Visual Studio 2005 ou Visual Studio 2008, le fichier par défaut est Program.cs.
  5. Ajoutez le code suivant à la méthode main :
    Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. Dans le menu Déboguer , cliquez sur Démarrer pour compiler et exécuter l'application. Ce code crée un fichier est nommé Test1.txt sur lecteur c. ouvrir Test1.txt dans un éditeur de texte tel que le bloc-notes. Test1.txt contient une seule ligne de texte :
    0123456789

Terminer la liste de code

  • Lire un fichier texte
    //Read a Text File
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args)
    		{
    		
    			String line;
    
    		try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
    
  • Écrire un fichier texte (version 1)
    //Write a text file - Version-1
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    			try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
  • Écrire un fichier texte (version 2)
    //Write a text file  - Version 2
    using System;
    using System.IO;
    using System.Text;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    		   
    			Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }

Résoudre les problèmes

Pour tous les manipulations de fichier, il est bien pratique pour placer le code dans un bloc try-catch-finally pour gérer les erreurs et exceptions. Plus précisément, vous souhaiterez peut-être libérer handles vers le fichier dans le bloc final afin que le fichier n'est pas verrouillé indéfiniment. Certaines erreurs possibles incluent un fichier qui n'existe pas ou un fichier qui est déjà en cours d'utilisation.

Références

Pour plus d'informations, reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
Classe StreamReader
http://msdn2.microsoft.com/en-us/library/system.io.streamreader(vs.71).aspx

Propriétés

Numéro d'article: 816149 - Dernière mise à jour: jeudi 17 mai 2007 - Version: 3.8
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C# .NET 2003 Initiation
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Mots-clés : 
kbmt kbfileio kbconsole kbhowtomaster kbhowto KB816149 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: 816149
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