Heim  >  Artikel  >  Backend-Entwicklung  >  TextWriter in C#

TextWriter in C#

PHPz
PHPzOriginal
2024-09-03 15:22:45188Durchsuche

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.

Wie funktioniert TextWriter in C#?

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:

  • IndentedTextWriter: Wird zum Einfügen einer Tabulatorzeichenfolge und zum Verfolgen der aktuellen Einrückungsstufe verwendet.
  • StreamWriter: Wird verwendet, um Zeichen in einer bestimmten Codierung in einen Stream zu schreiben.
  • StringWriter: Wird verwendet, um Informationen in einen String zu schreiben. Die Informationen werden in einem zugrunde liegenden StringBuilder gespeichert.
  • HttpWriter: Es stellt ein Objekt der TextWriter-Klasse bereit, auf das über das intrinsische HttpResponse-Objekt zugegriffen werden kann.
  • HtmlTextWriter: Wird verwendet, um Markup-Zeichen und Text in einen ASP.NET-Serversteuerungsausgabestream zu schreiben.

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.
Methode Beschreibung Schließen() Es wird verwendet, um den aktuellen Writer zu schließen und alle mit diesem Writer verbundenen Systemressourcen freizugeben. Dispose() Wird verwendet, um alle vom TextWriter-Objekt verwendeten Ressourcen freizugeben. Flush() Es wird verwendet, um alle Puffer für den aktuellen Writer zu löschen und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden. Synchronisiert(TextWriter) Wird verwendet, um einen threadsicheren Wrapper um den angegebenen TextWriter zu erstellen. Write(Char) Es wird verwendet, um ein Zeichen in den Textstrom zu schreiben. Write(String) Wird verwendet, um die Zeichenfolge in den Textstream zu schreiben. WriteAsync(Char) Wird verwendet, um das Zeichen asynchron in den Textstrom zu schreiben. WriteLine() Wird verwendet, um einen Zeilenabschluss in den Textstrom zu schreiben. WriteLineAsync(String) Wird verwendet, um die Zeichenfolge asynchron in den Textstream zu schreiben, gefolgt von einem Zeilenabschlusszeichen.

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:

TextWriter in C#

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 in C#

Conclusion

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!

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:C# BinaryReaderNächster Artikel:C# BinaryReader