TextWriter wird verwendet, um Text in eine Datei zu schreiben. Im Folgenden sind einige wichtige Punkte zu TextWriter in C# aufgeführt. TextWriter ist eine abstrakte Klasse im IO-Namespace. Es wird verwendet, um eine sequentielle Reihe von Zeichen in eine Datei zu schreiben. Es ist die Basisklasse von StreamWriter und StringWriter, die zum Schreiben von Zeichen in Streams bzw. Strings verwendet wird.
Standardmäßig ist es nicht threadsicher. Da es sich um eine abstrakte Klasse handelt, kann ihr Objekt nicht erstellt werden. Jede Klasse, die TextWriter implementiert, muss ihre Write(Char)-Methode minimal implementieren, um ihre nützliche Instanz zu erstellen.
Syntax mit Erklärung
TextWriter text_writer = File.CreateText(file_path);
Die obige Anweisung erstellt eine neue Datei, wenn sie am angegebenen Speicherort (Dateipfad) nicht vorhanden ist. Dann können wir text_writer verwenden, um die Methoden der TextWriter-Klasse aufzurufen und problemlos mit Dateien in C# zu arbeiten.
Wir können TextWriter mit einer using-Anweisung erstellen, wie zum Beispiel:
using(TextWriter text_writer = File.CreateText(file_path)) { //user code }
Es ist besser, TextWriter mit der using-Anweisung zu verwenden, da sie .NET anweist, das im using-Block angegebene Objekt freizugeben, sobald seine Arbeit erledigt ist und es nicht mehr benötigt wird.
Um mit TextWriter arbeiten zu können, müssen wir zunächst den System.IO-Namespace importieren. Jetzt können wir keine Instanz von TextWriter direkt mit dem Schlüsselwort „new“ erstellen, da es sich um eine abstrakte Klasse handelt. Um die Instanz zu erstellen, verwenden wir daher die Methode CreateText() der File-Klasse, wie zum Beispiel:
TextWriter text_writer = File.CreateText(file_path);
Diese Methode verwendet den Pfad der Datei, die zum Schreiben geöffnet werden soll. Es erstellt oder öffnet eine Datei zum Schreiben von UTF-8-codiertem Text. Wenn die Datei bereits existiert, wird ihr Inhalt überschrieben.
Es gibt ein Objekt von StreamWriter zurück, das die abgeleitete Klasse von TextWriter ist, und hilft uns somit beim Erstellen einer Instanz der TextWriter-Klasse. Mit Hilfe dieser Instanz können wir nun die Methoden von TextWriter aufrufen, um Text in eine Datei zu schreiben.
TextWriter ist eine abgeleitete Klasse einer abstrakten Klasse MarshalByRefObject. Seine Vererbungshierarchie ist wie folgt:
Objekt ——–> MarshalByRefObject ——–> TextWriter
Wie StreamWriter gibt es andere Klassen, die von der TextWriter-Klasse abgeleitet sind und die Implementierung für die Mitglieder von TextWriter bereitstellen. Nachfolgend finden Sie die Liste der abgeleiteten Klassen, mit deren Hilfe wir mit TextWriter arbeiten können:
Lassen Sie uns nun einige wichtige Methoden von TextWriter besprechen, wie zum Beispiel:
Method | Description |
Close() | It is used to close the current writer and it releases any system resources associated with that writer. |
Dispose() | It is used to release all the resources used by the TextWriter object. |
Flush() | It is used to clear all buffers for the current writer and causes any buffered data to be written to the underlying device. |
Synchronized(TextWriter) | It is used to create a thread-safe wrapper around the specified TextWriter. |
Write(Char) | It is used to write a character to the text stream. |
Write(String) | It is used to write the string to the text stream. |
WriteAsync(Char) | It is used to write the character to the text stream asynchronously. |
WriteLine() | It is used to write line terminator to the text stream. |
WriteLineAsync(String) | It is used to write the string to the text stream asynchronously followed by a line terminator. |
Example
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp2 { class Program { public static void Main() { string file = @"E:\Content\textWriter.txt"; // check if the file exists try { if (File.Exists(file)) { File.Delete(file); } // create the file using (TextWriter writer = File.CreateText(file)) { writer.WriteLine("TextWriter is an abstract class under " + "System.IO namespace. It is used to write sequential " + "series of characters into a file. It is the base class " + "of StreamWriter and StringWriter which is used to " + "write characters to streams and strings respectively. " + "By default, it is not thread safe. " + "As it is an abstract class, its object cannot be created. " + "Any class implementing TextWriter must minimally implement " + "its Write(Char) method to create its useful instance. "); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
Output:
We can asynchronously write characters to stream by using WriteAsync(Char) method such as:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp2 { public class Program { public static void Main(string[] args) { WriteCharAsync(); } public static async void WriteCharAsync() { string file = @"E:\Content\textWriterAsync.txt"; try { //check if file already exists if (File.Exists(file)) { File.Delete(file); } using (StreamWriter writer = File.CreateText(file)) { await writer.WriteLineAsync("TextWriter is an abstract class under "+ "System.IO namespace. It is used to write sequential " + "series of characters into a file. It is the base class " + "of StreamWriter and StringWriter which is used to " + "write characters to streams and strings respectively. " + "By default, it is not thread safe. " + "As it is an abstract class, its object cannot be created. " + "Any class implementing TextWriter must minimally implement " + "its Write(Char) method to create its useful instance. "); await writer.WriteLineAsync("We are writing characters " + "asynchronously."); } } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
Output:
TextWriter is used to write text or sequential series of characters to a file. A class derived from the TextWriter class needs to provide implementation to any of the members of the TextWriter. Write() methods of TextWriter with primitive data types as parameters write out values as strings.
Das obige ist der detaillierte Inhalt vonTextWriter in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!