Maison  >  Article  >  développement back-end  >  Lecteur de texte en C#

Lecteur de texte en C#

WBOY
WBOYoriginal
2024-09-03 15:22:541003parcourir

TextReader en C# est utilisé pour lire du texte ou des séries séquentielles de caractères à partir d'un fichier texte. La classe TextReader se trouve sous l’espace de noms System.IO. Il s'agit d'une classe de base abstraite de StreamReader et StringReader qui sont utilisées respectivement pour lire les caractères du flux et de la chaîne. Nous ne pouvons pas créer un objet de TextReader car c'est une classe abstraite. TextReader n'est pas thread-safe par défaut. La classe TextReader dérivant de la classe doit implémenter au minimum les méthodes Peek() et Read() afin de créer une instance utile de TextReader.

Syntaxe :

La syntaxe de création de TextReader est la suivante :

TextReader text_reader = File.OpenText(file_path);

L'instruction ci-dessus ouvrira un fichier à l'emplacement spécifié par 'file_path'. Ensuite, avec l'aide de text_reader, nous pouvons utiliser les méthodes de la classe TextReader afin de lire le contenu du fichier.

Nous pouvons également créer TextReader à l'aide du bloc « using » comme indiqué ci-dessous :

using(TextReader text_reader = File.OpenText(file_path))
{
//user code
}

L'avantage de travailler avec le bloc « using » est qu'il libère la mémoire acquise par l'objet spécifié à l'intérieur une fois le travail de l'objet terminé et que l'objet n'est plus nécessaire.

Comment fonctionne TextReader en C# ?

Pour travailler avec TextReader, il est nécessaire d'importer l'espace de noms System.IO dans notre code. Comme TextReader est une classe abstraite, nous ne pouvons pas créer son instance directement à l'aide du mot-clé 'new' mais nous pouvons utiliser la méthode OpenText() de la classe File pour obtenir le même résultat, comme indiqué ci-dessous :

TextReader text_reader = File.OpenText(file_path);

La méthode OpenText() prend l'emplacement du fichier en entrée, puis ouvre un fichier texte codé UTF-8 existant au même emplacement pour la lecture.

La méthode File.OpenText() renvoie un objet de la classe StreamReader qui est la classe dérivée de TextReader et aide ainsi à créer une instance utile de la classe TextReader dans le code. Cette instance peut être utilisée pour appeler les méthodes de la classe TextReader pour lire le contenu du fichier. La classe TextReader est dérivée d'une classe abstraite MarshalByRefObject. Sa hiérarchie d'héritage est présentée ci-dessous :

Objet → MarshalByRefObject → TextReader

Nous pouvons travailler avec TextReader à l'aide de ses deux classes dérivées, à savoir StreamReader et StringReader.

  • StreamReader : Il est utilisé pour lire les caractères d'un flux d'octets dans un encodage particulier.
  • StringReader : Il est utilisé pour lire le texte d'une chaîne.

Veuillez trouver quelques méthodes importantes de TextReader dans le tableau suivant :

Method Description
Close() It is used to close the TextReader and to release any system resources associated with it.
Dispose() It is used to release all the resources used by an object of TextReader.
Peek() It is used to read the next character without changing the state of the reader and it returns the next available character without actually reading it from the reader.
Read() It is used to read the next character from the text reader and it also advances the character position by one character.
ReadLine() It is used to read a line of characters from the text reader and it also returns the data as a string.
ReadToEnd() It is used to read all characters from the current position to the end of the text reader and it returns them as one string.
Méthode
Description
Fermer() Il est utilisé pour fermer TextReader et libérer toutes les ressources système qui lui sont associées.
Dispose() Il permet de libérer toutes les ressources utilisées par un objet de TextReader.
Peek() Il est utilisé pour lire le caractère suivant sans changer l'état du lecteur et il renvoie le prochain caractère disponible sans le lire réellement à partir du lecteur.
Lire() Il est utilisé pour lire le caractère suivant à partir du lecteur de texte et il avance également la position du caractère d'un caractère.
ReadLine() Il est utilisé pour lire une ligne de caractères à partir du lecteur de texte et il renvoie également les données sous forme de chaîne.
ReadToEnd() Il est utilisé pour lire tous les caractères de la position actuelle jusqu'à la fin du lecteur de texte et les renvoie sous la forme d'une seule chaîne.

Examples of TextReader in C#

We can pass a text file name in a TextReader constructor to create an object. Following are the different examples of TextReader in C#.

Example #1

Reading a line of a file using the ReadLine() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
try
{
if (File.Exists(file))
{
// opening the text file and reading a line
using (TextReader textReader = File.OpenText(file))
{
Console.WriteLine(textReader.ReadLine());
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

Lecteur de texte en C#

Example #2

Reading five characters from a file using the ReadBlock() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
try
{
if (File.Exists(file))
{
//Opening the text file and reading 5 characters
using (TextReader textReader = File.OpenText(file))
{
char[] ch = new char[5];
textReader.ReadBlock(ch, 0, 5);
Console.WriteLine(ch);
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

Lecteur de texte en C#

Example #3

Reading the whole content of a text file using the ReadToEnd() method of TextReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string file = @"E:\Content\TextReader.txt";
string content = String.Empty;
try
{
if (File.Exists(file))
{
//Opening a text file and reading the whole content
using (TextReader tr = File.OpenText(file))
{
content = tr.ReadToEnd();
Console.WriteLine(content);
}
}
else
{
Console.WriteLine("File does not exist!");
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

Lecteur de texte en C#

Example #4

Reading the content of a text file using TextReader and writing it to another file.

Code:

using System;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp3
{
public class Program
{
public static void Main()
{
string fileToRead = @"E:\Content\TextReader.txt";
string fileToWrite = @"E:\Content\TextReaderAndWriter.txt";
StringBuilder content = new StringBuilder();
string str = String.Empty;
try
{
//checking if the file exists to read
if (File.Exists(fileToRead))
{
//Opening a text file and reading the whole content
using (TextReader textReader = File.OpenText(fileToRead))
{
while ((str = textReader.ReadLine()) != null)
{
content.Append("\n" + str);
}
}
}
else
{
Console.WriteLine("File does not exist!");
}
//checking if the file to write content already exists
if (File.Exists(fileToWrite))
{
File.Delete(fileToWrite);
}
//creating file if it does not exist
using (TextWriter textWriter = File.CreateText(fileToWrite))
{
textWriter.WriteLine(content);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}

Output:

Lecteur de texte en C#

Conclusion

  • TextReader is an abstract class that is used to read text or sequential series of characters from a text file.
  • StreamReader and StringReader are two derived classes of TextReader with the help of which we can implement the methods of TextReader to read content from the text files.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:TextWriter en C#Article suivant:TextWriter en C#