StringWriter und StringReader in C#

StringWriter und StringReader in C#

StringWriter und StringReader in C# mit Beispielen

In diesem Artikel werde ich auf StringWriter und StringReader in C# eingehen mit Beispielen. Bitte lesen Sie unseren vorherigen Artikel, in dem wir über BinaryWriter und BinaryReader in C# gesprochen haben mit Beispielen. Am Ende dieses Artikels erfahren Sie, was StringWriter und StringReader in C# sind und wann und wie Sie StringWriter und StringReader in C# mit Beispielen verwenden.

Was ist die StringWriter-Klasse in C#?

Die StringWriter-Klasse in C# ist von der TextWriter-Klasse abgeleitet, und diese StringWriter-Klasse wird hauptsächlich zum Bearbeiten von Zeichenfolgen und nicht von Dateien verwendet. Die StringWriter-Klasse ermöglicht es uns, einen String entweder synchron oder asynchron zu schreiben. Wir können also ein Zeichen entweder mit der Methode Write(Char) oder WriteAsync(Char) schreiben und wir können eine Zeichenfolge mit der Methode Write(String) oder WriterAsync(String) schreiben. Der Text oder die Informationen, die von der StringWriter-Klasse geschrieben werden, werden in einem StringBuilder gespeichert. Der Text-Namespace und die Zeichenfolgen können mithilfe der StringBuilder-Klasse effizient erstellt werden, da Zeichenfolgen in C# unveränderlich sind und die von StringWriter bereitgestellten Write- und WriteLine-Methoden uns helfen, in das Objekt von StringBuilder zu schreiben. Die StringBuilder-Klasse speichert die von der StringWriter-Klasse geschriebenen Informationen.

Der wichtigste Punkt, an den Sie sich erinnern müssen, ist, dass der StringWriter nicht zum Schreiben von Dateien auf die lokale Festplatte dient. Es wird zum Manipulieren von Zeichenfolgen verwendet und speichert Informationen in StringBuilder. Wenn Sie zur Definition der StringWriter-Klasse gehen, sehen Sie Folgendes.

Lassen Sie uns die Konstruktoren, Eigenschaften und Methoden der StringWriter-Klasse in C# verstehen.

Konstruktoren von StringWriter in C#
  1. öffentlicher StringWriter(): Es initialisiert eine neue Instanz der System.IO.StringWriter-Klasse.
  2. öffentlicher StringWriter(IFormatProvider formatProvider): Es initialisiert eine neue Instanz der StringWriter-Klasse mit dem angegebenen Formatsteuerelement. Der Parameter formatProvider gibt ein System.IFormatProvider-Objekt an, das die Formatierung steuert
  3. öffentlicher StringWriter(StringBuilder sb): Sie initialisiert eine neue Instanz der StringWriter-Klasse, die in den angegebenen System.Text.StringBuilder schreibt. Der Parameter sb gibt das StringBuilder-Objekt an, in das geschrieben werden soll.
  4. public StringWriter(StringBuilder sb, IFormatProvider formatProvider): Sie initialisiert eine neue Instanz der StringWriter-Klasse, die in den angegebenen StringBuilder schreibt und über den angegebenen Formatanbieter verfügt. Der Parameter sb gibt das StringBuilder-Objekt an, in das geschrieben werden soll, und der Parameter formatProvider gibt ein System.IFormatProvider-Objekt an, das die Formatierung steuert.
Eigenschaften der StringWriter-Klasse in C#:

Die StringWriter-Klasse in C# stellt die folgende Eigenschaft bereit.

  1. Codierung :Diese Eigenschaft wird verwendet, um die Kodierung abzurufen, in der die Ausgabe geschrieben wird. Es gibt also die Kodierung zurück, in der die Ausgabe geschrieben ist.
Methoden der StringWriter-Klasse in C#

Die StringWriter-Klasse in C# stellt die folgenden Methoden bereit.

  1. Schließen(): Diese Methode wird verwendet, um den aktuellen StringWriter und den zugrunde liegenden Stream zu schließen.
  2. Entsorgen(): Diese Methode wird verwendet, um die nicht verwalteten Ressourcen freizugeben, die von System.IO.StringWriter verwendet werden, und gibt optional die verwalteten Ressourcen frei.
  3. FlushAsync(): Diese Methode wird verwendet, um alle Puffer für den aktuellen Writer asynchron zu löschen und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.
  4. GetStringBuilder(): Diese Methode wird verwendet, um den zugrunde liegenden StringBuilder zurückzugeben.
  5. ToString(): Diese Methode wird verwendet, um einen String zurückzugeben, der die bisher in den aktuellen StringWriter geschriebenen Zeichen enthält.
  6. Schreiben (Zeichenwert): Diese Methode wird verwendet, um ein Zeichen in den String zu schreiben.
  7. Write(string value): Diese Methode wird verwendet, um einen String in den aktuellen String zu schreiben.
  8. WriteAsync(Zeichenwert): Diese Methode wird verwendet, um ein Zeichen asynchron in den String zu schreiben.
  9. WriteAsync(string value): Diese Methode wird verwendet, um einen String asynchron in den aktuellen String zu schreiben.
  10. WriteLine(String): Diese Methode wird verwendet, um eine Zeichenfolge gefolgt von einem Zeilenabschlusszeichen in die Textzeichenfolge oder den Stream zu schreiben.
  11. WriteLineAsync(string value): Diese Methode wird verwendet, um einen String gefolgt von einem Zeilenabschlusszeichen asynchron zum aktuellen String zu schreiben.
Beispiel zum Verständnis der StringWriter-Klasse in C#:

Im folgenden Beispiel verwenden wir die Klassen StringWriter und StringReader in C#. Hier speichert die Zeichenfolgenvariable text einen Zeichenfolgenwert, und mit StringWriter speichern wir diesen Zeichenfolgenwert in StringBuilder. Dann erhalten wir mit StringReader die Daten und zeigen die Daten auf der Konsole an.

using System;
using System.Text;
using System.IO;

namespace StringWriter_StringReader_Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "Hello. This is First Line \nHello. This is Second Line \nHello. This is Third Line";
            //Writing string into StringBuilder
            StringBuilder stringBuilder = new StringBuilder();
            StringWriter stringWriter = new StringWriter(stringBuilder);

            //Store Data on StringBuilder
            stringWriter.WriteLine(text);
            stringWriter.Flush();
            stringWriter.Close();

            //Read Entry
            StringReader reader = new StringReader(stringBuilder.ToString());
            //Check to End of File
            while (reader.Peek() > -1)
            {
                Console.WriteLine(reader.ReadLine());
            }

            Console.ReadKey();
        }
    }
}
Ausgabe:

Hinweis: Als abgeleitete Klasse der TextWriter-Klasse wird die StringWriter-Klasse zum Schreiben und Umgang mit den String-Daten anstelle der Dateien verwendet, um die String-Daten zu manipulieren und das Ergebnis im StringBuilder zu speichern.

Was ist die StringReader-Klasse in C#?

Die StringReader-Klasse in C# ist von der TextReader-Klasse abgeleitet und diese StringReader-Klasse wird hauptsächlich verwendet, um Strings und nicht Dateien zu manipulieren. Diese StringReader-Klasse wird mithilfe einer Zeichenfolge erstellt, und die Methoden Read und ReadLine werden von der Klasse StringReader bereitgestellt, um die Teile der Zeichenfolge zu lesen. Die von der StringReader-Klasse gelesenen Daten sind die von der StringWriter-Klasse geschriebenen Daten, die von der TextWriter-Unterklasse abgeleitet ist. Die Daten können synchron oder asynchron mit der StringReader-Klasse gelesen werden, und die Leseoperationen werden mithilfe der Konstruktoren und Methoden durchgeführt, die in der StringReader-Klasse vorhanden sind.

In einfachen Worten können wir also sagen, dass die StringReader-Klasse in C# die TextReader-Klasse implementiert, die eine Zeichenfolge aus einer Zeichenfolge liest. Es ermöglicht Ihnen, einen String synchron oder asynchron zu lesen. Sie können ein Zeichen mit der Methode Read() und eine Zeile mit der Methode ReadLine() lesen. Wenn Sie zur Definition der StringReader-Klasse gehen, sehen Sie Folgendes.

Lassen Sie uns die Konstruktoren und Methoden der StringReader-Klasse in C# verstehen.

Der Konstruktor der StringReader-Klasse in C#

öffentlicher StringReader(string s): Es initialisiert eine neue Instanz der StringReader-Klasse, die aus der angegebenen Zeichenfolge liest. Hier gibt der Parameter „s“ den String an, auf den der StringReader initialisiert werden soll.

Methoden der StringReader-Klasse in C#

Die StringReader-Klasse in C# stellt die folgenden Methoden bereit.

  1. Schließen(): Diese Methode wird verwendet, um den StringReader zu schließen.
  2. Peek(): Diese Methode wird verwendet, um das nächste verfügbare Zeichen zurückzugeben, verbraucht es jedoch nicht. Es gibt eine Ganzzahl zurück, die das nächste zu lesende Zeichen darstellt, oder -1, wenn keine weiteren Zeichen verfügbar sind oder der Stream keine Suche unterstützt.
  3. Lesen(): Diese Methode wird verwendet, um das nächste Zeichen aus der Eingabezeichenfolge zu lesen, und rückt die Zeichenposition um ein Zeichen vor. Es gibt das nächste Zeichen aus der zugrunde liegenden Zeichenfolge zurück, oder -1, wenn keine weiteren Zeichen verfügbar sind.
  4. ReadLine(): Diese Methode wird verwendet, um eine Zeile von Zeichen aus der aktuellen Zeichenfolge zu lesen und die Daten als Zeichenfolge zurückzugeben. Es gibt die nächste Zeile des aktuellen Strings zurück oder null, wenn das Ende des Strings erreicht ist.
  5. ReadLineAsync(): Diese Methode wird verwendet, um eine Zeile von Zeichen asynchron aus dem aktuellen String zu lesen und die Daten als String zurückzugeben. Es gibt eine Aufgabe zurück, die den asynchronen Lesevorgang darstellt. Der Wert des TResult-Parameters enthält die nächste Zeile aus dem String-Reader oder ist null, wenn alle Zeichen gelesen wurden.
  6. ReadToEnd(): Diese Methode wird verwendet, um alle Zeichen von der aktuellen Position bis zum Ende des Strings zu lesen und sie als einen einzigen String zurückzugeben. Es gibt den Inhalt von der aktuellen Position bis zum Ende des zugrunde liegenden Strings zurück.
  7. ReadToEndAsync(): Mit dieser Methode werden alle Zeichen von der aktuellen Position bis zum Ende des Strings asynchron gelesen und als ein einzelner String zurückgegeben. Es gibt eine Aufgabe zurück, die den asynchronen Lesevorgang darstellt. Der Wert des Parameters TResult enthält einen String mit den Zeichen von der aktuellen Position bis zum Ende des Strings.
  8. Entsorgen(): Diese Methode wird verwendet, um die nicht verwalteten Ressourcen freizugeben, die von System.IO.StringReader verwendet werden, und gibt optional die verwalteten Ressourcen frei.
Beispiel zum Verständnis der StringReader-Klasse in C#:

Im folgenden Beispiel liest die StringReader-Klasse einen String aus einer String-Variablen, markiert jede Zeile mit der Zählnummer und zeigt sie dann auf der Konsole an.

using System;
using System.IO;

namespace StringWriter_StringReader_Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = @"You are reading
                            this StringWriter and StringReader in C# article at
                            dotnettutorials.net";

            using (StringReader rtringReader = new StringReader(text))
            {
                int count = 0;
                string line;
                while ((line = rtringReader.ReadLine()) != null)
                {
                    count++;
                    Console.WriteLine("Line {0}: {1}", count, line);
                }
            }
            Console.ReadKey();
        }
    }
}
Ausgabe:

Im nächsten Artikel werde ich auf FileInfo eingehen Klasse in C# mit Beispielen. Hier in diesem Artikel versuche ich, StringWriter und StringReader in C# zu erklären mit Beispielen. Ich hoffe, Ihnen gefällt dieser StringWriter und StringReader in C# mit Beispielartikel. Ich hätte gerne Ihr Feedback. Bitte posten Sie Ihr Feedback, Ihre Fragen oder Kommentare zu diesem Artikel.