Tutoriel Stream en C# : StreamReader et StreamWriter [Exemple]
Quโest-ce que le flux C# ?
Dans les opรฉrations sur les fichiers C#, les flux sont normalement utilisรฉs pour lire et รฉcrire dans des fichiers. Un flux est une couche supplรฉmentaire crรฉรฉe entre une application et un fichier. Le flux est utilisรฉ pour garantir des opรฉrations de lecture et dโรฉcriture fluides dans le fichier.
Les flux sont normalement utilisรฉs lors de la lecture de donnรฉes ร partir de fichiers volumineux. En utilisant des flux, les donnรฉes des fichiers volumineux sont dรฉcomposรฉes en petits morceaux et envoyรฉes au flux. Ces morceaux de donnรฉes peuvent ensuite รชtre lus depuis lโapplication.
La raison pour laquelle il est divisรฉ en petits morceaux est l'impact sur les performances de la lecture d'un gros fichier en une seule fois. Si vous deviez lire les donnรฉes d'un fichier de 100 Mo d'un seul coup, par exemple, votre application pourrait tout simplement se bloquer et devenir instable. La meilleure approche consiste alors ร utiliser des flux pour diviser le fichier en morceaux gรฉrables.
Ainsi, lorsqu'une opรฉration d'รฉcriture est effectuรฉe sur un fichier, les donnรฉes ร รฉcrire sont d'abord รฉcrites dans le flux. ร partir du flux, les donnรฉes sont ensuite รฉcrites dans le fichier. Il en va de mรชme pour l'opรฉration de lecture. Lors de l'opรฉration de lecture, les donnรฉes sont d'abord transfรฉrรฉes du fichier vers le flux. Les donnรฉes sont ensuite lues depuis l'application via le flux. Regardons un exemple de la faรงon dont nous pouvons lire et รฉcrire ร l'aide de flux.
Lecteur de flux
Le lecteur de flux est utilisรฉ pour lire les donnรฉes d'un fichier ร l'aide de flux. Les donnรฉes du fichier sont d'abord lues dans le flux. Ensuite, l'application lit les donnรฉes du flux.
Pour notre exemple, nous supposerons que nous avons un fichier dans le lecteur D appelรฉ Exemple.txt. Le fichier sera un simple fichier texte et comportera 2 lignes comme indiquรฉ ci-dessous
- Guru99 โ .Net
- Guru99 -C#
Pour notre exemple, nous allons crรฉer une application console simple et travailler avec des flux de fichiers
Regardons un exemple de la faรงon dont nous pouvons utiliser les flux pour lire les donnรฉes d'un fichier. Entrez le code ci-dessous dans le fichier program.cs.
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Tutorial
{
static void Main(string[] args)
{
String path = @"D:\Example.txt";
using (StreamReader sr = File.OpenText(path))
{
String s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
Console.ReadKey();
}
}
}
Explication du code : -
- Tout dโabord, nous dรฉclarons un objet lecteur de flux. L'objet stream reader est utilisรฉ en C# pour dรฉfinir un flux du fichier vers l'application. Les donnรฉes seront poussรฉes du fichier vers le flux chaque fois que des donnรฉes seront lues ร partir du fichier. Le fichier.OpenText permet d'ouvrir le fichier ยซ Exemple.txt ยป en mode lecture seule. Le gestionnaire du fichier est ensuite envoyรฉ ร l'objet lecteur de flux.
- Ensuite, nous dรฉfinissons une variable temporaire 's' qui sera utilisรฉe pour lire toutes les donnรฉes du fichier.
- Nous utilisons ensuite la mรฉthode de lecture de flux ReadLine pour lire chaque ligne du tampon de flux. Quand nous effectuons cela la vente au dรฉtail h/, chaque ligne sera d'abord transfรฉrรฉe du fichier vers le tampon. Ensuite, la ligne de chaรฎne sera transfรฉrรฉe du tampon vers la variable 's'. Nous รฉcrivons ensuite le contenu de la chaรฎne 's' dans la console.
Lorsque le code ci-dessus est dรฉfini et que le projet est exรฉcutรฉ en utilisant Visual Studio, vous obtiendrez le rรฉsultat ci-dessous.
Production:-
ร partir de la sortie, vous pouvez voir que Stream Reader a lu les deux lignes du fichier. Enfin, les lignes de la chaรฎne lues dans le flux รฉtaient envoyรฉes ร la console.
รcrivain de flux
Le rรฉdacteur de flux est utilisรฉ pour รฉcrire des donnรฉes dans un fichier ร lโaide de flux. Les donnรฉes de l'application sont d'abord รฉcrites dans le flux. Aprรจs cela, le flux รฉcrit les donnรฉes dans le fichier. Regardons un exemple de la faรงon dont nous pouvons utiliser des flux pour รฉcrire des donnรฉes ร partir d'un fichier. Entrez le code ci-dessous dans le fichier program.cs.
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Tutorial
{
static void Main(string[] args)
{
String path = @"D:\Example.txt";
using (StreamWriter sr = File.AppendText(path))
{
sr.WriteLine("Guru99 - ASP.Net");
sr.Close();
Console.WriteLine(File.ReadAllText(path));
}
Console.ReadKey();
}
}
}
Explication du code : -
- Tout dโabord, nous dรฉclarons un objet streamwriter. L'objet streamwriter est utilisรฉ en C# pour dรฉfinir un flux. Le flux est ensuite utilisรฉ pour รฉcrire les donnรฉes de l'application dans le fichier. Les donnรฉes seront poussรฉes de l'application vers le flux chaque fois que des donnรฉes doivent รชtre รฉcrites. La commande File.AppendText est utilisรฉe pour ouvrir le fichier ยซ Example.txt ยป en mode ajout. Le gestionnaire du fichier est ensuite envoyรฉ ร lโobjet streamwriter.
- Nous utilisons la mรฉthode d'รฉcriture de flux Writeline pour รฉcrire la ligne ยซ Guru99 โ ASP.Net ยป dans le flux. A partir du flux, la ligne sera ensuite รฉcrite dans le fichier.
- Nous fermons ensuite le streamwriter aprรจs avoir รฉcrit dans le fichier. C'est normalement une bonne pratique de fermer les gestionnaires de fichiers lorsque le fichier n'est plus nรฉcessaire ร des fins d'รฉcriture.
- Enfin, nous lisons ร nouveau le contenu du fichier et l'รฉcrivons dans le journal de la console. Il s'agit de vรฉrifier si la ligne a รฉtรฉ รฉcrite dans le fichier.
Lorsque le code ci-dessus est dรฉfini et que le projet est exรฉcutรฉ ร l'aide de Visual Studio, vous obtiendrez le rรฉsultat ci-dessous.
Production:-
ร partir du rรฉsultat, vous pouvez voir que la ligne ยซ Guru99 โ ASP.Net ยป a รฉtรฉ ajoutรฉe avec succรจs au fichier. Les 3 lignes de texte sont visibles dans la console.
Rรฉsumรฉ
- Les flux sont utilisรฉs comme niveau intermรฉdiaire entre l'application et le fichier.
- Un StreamReader est utilisรฉ chaque fois que des donnรฉes doivent รชtre lues ร partir d'un fichier.
- Un Streamwriter est utilisรฉ chaque fois que des donnรฉes doivent รชtre รฉcrites dans un fichier.




