TextReader in C#

WBOY
WBOYOriginal
2024-09-03 15:22:541122Durchsuche

TextReader in C# wird zum Lesen von Text oder aufeinanderfolgenden Zeichenreihen aus einer Textdatei verwendet. Die TextReader-Klasse befindet sich im System.IO-Namespace. Es handelt sich um eine abstrakte Basisklasse von StreamReader und StringReader, die zum Lesen von Zeichen aus Stream bzw. String verwendet wird. Wir können kein Objekt von TextReader erstellen, da es sich um eine abstrakte Klasse handelt. TextReader ist standardmäßig nicht threadsicher. Die von der Klasse abgeleitete TextReader-Klasse muss die Methoden Peek() und Read() minimal implementieren, um eine nützliche Instanz von TextReader zu erstellen.

Syntax:

Syntax zum Erstellen von TextReader ist wie folgt:

TextReader text_reader = File.OpenText(file_path);

Die obige Anweisung öffnet eine Datei an dem durch „file_path“ angegebenen Speicherort. Dann können wir mit Hilfe des text_reader die Methoden der TextReader-Klasse verwenden, um Inhalte aus der Datei zu lesen.

Wir können TextReader auch mit Hilfe des „using“-Blocks erstellen, wie unten gezeigt:

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

Der Vorteil der Arbeit mit dem „using“-Block besteht darin, dass er den von dem darin angegebenen Objekt erworbenen Speicher freigibt, nachdem die Arbeit des Objekts abgeschlossen ist und das Objekt nicht mehr benötigt wird.

Wie funktioniert TextReader in C#?

Um mit TextReader arbeiten zu können, ist es notwendig, den System.IO-Namespace in unseren Code zu importieren. Da TextReader eine abstrakte Klasse ist, können wir seine Instanz nicht direkt mit dem Schlüsselwort „new“ erstellen, aber wir können die OpenText()-Methode der File-Klasse verwenden, um dasselbe zu erreichen, wie unten gezeigt:

TextReader text_reader = File.OpenText(file_path);

Die OpenText()-Methode verwendet den Speicherort der Datei als Eingabe und öffnet dann eine vorhandene UTF-8-codierte Textdatei am selben Speicherort zum Lesen.

Die File.OpenText()-Methode gibt ein Objekt der StreamReader-Klasse zurück, die die abgeleitete Klasse von TextReader ist und somit beim Erstellen einer nützlichen Instanz der TextReader-Klasse im Code hilft. Diese Instanz kann verwendet werden, um die Methoden der TextReader-Klasse aufzurufen, um Inhalte aus der Datei zu lesen. Die TextReader-Klasse ist von einer abstrakten Klasse MarshalByRefObject abgeleitet. Die Vererbungshierarchie ist unten dargestellt:

Objekt → MarshalByRefObject → TextReader

Wir können mit TextReader mithilfe seiner beiden abgeleiteten Klassen arbeiten, nämlich StreamReader und StringReader.

  • StreamReader: Wird verwendet, um Zeichen aus einem Byte-Stream in einer bestimmten Codierung zu lesen.
  • StringReader: Wird zum Lesen von Text aus einer Zeichenfolge verwendet.

Einige wichtige Methoden von TextReader finden Sie in der folgenden Tabelle:

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.
Methode
Beschreibung
Schließen() Es wird verwendet, um den TextReader zu schließen und alle damit verbundenen Systemressourcen freizugeben.
Dispose() Es wird verwendet, um alle von einem TextReader-Objekt verwendeten Ressourcen freizugeben.
Peek() Es wird verwendet, um das nächste Zeichen zu lesen, ohne den Status des Lesegeräts zu ändern, und es gibt das nächste verfügbare Zeichen zurück, ohne es tatsächlich vom Lesegerät zu lesen.
Read() Es wird verwendet, um das nächste Zeichen aus dem Textleser zu lesen und die Zeichenposition um ein Zeichen weiterzurücken.
ReadLine() Es wird verwendet, um eine Zeile mit Zeichen aus dem Textleser zu lesen und gibt die Daten auch als String zurück.
ReadToEnd() Es wird verwendet, um alle Zeichen von der aktuellen Position bis zum Ende des Textlesers zu lesen und sie als eine Zeichenfolge zurückzugeben.

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:

TextReader in 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:

TextReader in 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:

TextReader in 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:

TextReader in 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.

Das obige ist der detaillierte Inhalt vonTextReader in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:TextWriter in C#Nächster Artikel:TextWriter in C#