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

Pour obtenir une version Microsoft Visual Basic .NET de cet article, reportez-vous à 302309 .


Cet article fait référence aux espaces de noms bibliothèque de classes Microsoft.NET Framework suivant :
  • System.IO
  • System.Collections

Résumé

Cet article pas à pas vous montre comment récupérer des informations à partir d’un fichier texte (.txt) et ensuite utiliser une classe ArrayList pour afficher ces informations à l’utilisateur.

Configuration requise

Microsoft Visual C#

Lecture de fichiers texte dans Visual C#

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

Bien que de nombreuses structures de données soient disponibles pour stocker les informations récupérées à partir du fichier, une classe ArrayList est la structure la plus simple à utiliser. Pour ouvrir et lire le fichier, cet exemple utilise des objets de l’espace de noms System.IO , plus particulièrement la classe System.IO.StreamReader .

Remarque 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 nouvelle Application Console dans Visual C#. Visual Studio crée une Classe statique pour vous, ainsi qu’une procédure Main() vide.
  3. Vérifiez que le projet fait référence au moins l’espace de noms System . Utilisez l’instruction using sur les espaces de noms System, System.IOet System.Collections afin que vous n’êtes pas obligé de qualifier les déclarations de ces espaces de noms ultérieurement dans votre code. Vous devez utiliser ces instructions avant toute autre déclaration.
    using System;using System.IO;
    using System.Collections;

  4. Pour ouvrir un fichier pour lecture, créez une nouvelle instance d’un objet StreamReader et transmettre le chemin du fichier au constructeur comme suit :
    StreamReader objReader = new StreamReader("c:\\test.txt");
  5. Vous devez disposer d’une variable de chaîne dans lequel stocker chaque ligne du fichier que vous traitez. Étant donné que vous allez ajouter ces lignes à une ArrayList, déclarer et créer un objet de ce type, également.
    string sLine="";ArrayList arrText = new ArrayList();

  6. Il existe plusieurs façons de lire le fichier, y compris la méthode ReadToEnd qui lit dans le fichier entier en une seule fois. Cependant, pour cet exemple, vous pouvez utiliser la méthode ReadLine pour mettre dans le fichier une ligne à la fois. Lorsque la fin du fichier est atteinte, cette méthode retourne une valeur null, ce qui offre un moyen de mettre fin à votre boucle. Comme vous lisez chaque ligne du fichier, vous pouvez utiliser la méthode Add de liste de tableaux pour insérer les lignes dans votre classe ArrayList .
    while (sLine != null){
    sLine = objReader.ReadLine();
    if (sLine != null)
    arrText.Add(sLine);
    }
    objReader.Close();

  7. Utilisez une boucle For Each pour écrire le contenu de votre liste de tableaux nouvellement remplie sur la console, comme suit :
    foreach (string sOutput in arrText)Console.WriteLine(sOutput);
    Console.ReadLine();

  8. Enregistrez et exécutez votre code, ce qui génère une liste de vos fichiers dans la console.

Listing complet du 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 existe plusieurs choses à savoir lorsque vous travaillez avec un fichier e/s, y compris les éléments suivants :

  • Une fois que vous accédez à un fichier, existe la possibilité que le fichier que vous essayez de lire ou d’écrire n’est peut-être pas sur le système ou qu’il est peut-être en cours d’utilisation.
  • Cet exemple lit le fichier entier en mémoire avant le traitement du fichier. Vous pouvez rencontrer une situation dans laquelle le fichier est trop volumineux pour être chargé dans la mémoire, ou vous ne disposez pas des autorisations nécessaires pour accéder au fichier.
Chacune de ces situations provoque la levée d’une exception. Il est toujours judicieux de fournir un bloc try... catch pour gérer ces difficultés courantes .
Propriétés

ID d'article : 306777 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires