TextReader-Klasse

Stellt ein Leseprogramm dar, das eine sequenzielle Serie von Zeichenfolgen lesen kann.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class TextReader
    Inherits MarshalByRefObject
    Implements IDisposable
'Usage
Dim instance As TextReader
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class TextReader : MarshalByRefObject, IDisposable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class TextReader abstract : public MarshalByRefObject, IDisposable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class TextReader extends MarshalByRefObject implements IDisposable
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class TextReader extends MarshalByRefObject implements IDisposable

Hinweise

TextReader ist die abstrakte Basisklasse von StreamReader und StringReader, die Zeichen aus Streams bzw. Zeichenfolgen lesen. Verwenden Sie diese abgeleiteten Klassen, um eine Textdatei zum Lesen eines angegebenen Bereichs von Zeichen zu öffnen oder einen Reader auf der Grundlage eines vorhandenen Streams zu erstellen.

Eine abgeleitete Klasse muss mindestens die Peek-Methode und die Read-Methode implementieren, um eine verwendbare Instanz von TextReader darzustellen.

Beispiel

Das folgende Codebeispiel veranschaulicht das polymorphe Verhalten des TextReader-Typs und des TextWriter-Typs. Da sowohl aStringWriter als auch aStreamWriter vom Typ TextWriter ist, wird die WriteVowel-Methode mit beiden Objekten aufgerufen, und die jedem spezifischen Typ zugeordneten Write-Methoden werden ausgeführt. Ebenso wird die ReadText-Methode mit aStringReader und aStreamReader aufgerufen und die richtige ReadToEnd-Methode ausgeführt. Beachten Sie, dass der Sicherungsspeicher für aStringWriter und aStringReader eine Zeichenfolge, der Sicherungsspeicher für aStreamWriter und aStreamReader aber eine Datei ist.

Imports System
Imports System.IO

Public Class TextRW

    Shared Sub Main()
        Dim aStringWriter, aStreamWriter As TextWriter
        aStringWriter = New StringWriter()
        aStreamWriter = New StreamWriter("InvalidPathChars.txt")
        
        WriteText(aStringWriter)
        WriteText(aStreamWriter)
        aStreamWriter.Close()
        
        Dim aStringReader, aStreamReader As TextReader
        aStringReader = New StringReader(aStringWriter.ToString())
        aStreamReader = New StreamReader("InvalidPathChars.txt")
        
        ReadText(aStringReader)
        ReadText(aStreamReader)
        aStreamReader.Close()
    End Sub

    Shared Sub WriteText(aTextWriter As TextWriter)
        aTextWriter.Write("Invalid file path characters are: ")
        aTextWriter.Write(Path.InvalidPathChars)
        aTextWriter.Write("."C)
    End Sub

    Shared Sub ReadText(aTextReader As TextReader)
        Console.WriteLine("From {0} - {1}", _
            aTextReader.GetType().Name, aTextReader.ReadToEnd())
    End Sub

End Class
using System;
using System.IO;

class TextRW
{
    static void Main()
    {
        TextWriter stringWriter = new StringWriter();
        using(TextWriter streamWriter = 
            new StreamWriter("InvalidPathChars.txt"))
        {
            WriteText(stringWriter);
            WriteText(streamWriter);
        }

        TextReader stringReader = 
            new StringReader(stringWriter.ToString());
        using(TextReader streamReader = 
            new StreamReader("InvalidPathChars.txt"))
        {
            ReadText(stringReader);
            ReadText(streamReader);
        }
    }

    static void WriteText(TextWriter textWriter)
    {
        textWriter.Write("Invalid file path characters are: ");
        textWriter.Write(Path.InvalidPathChars);
        textWriter.Write('.');
    }

    static void ReadText(TextReader textReader)
    {
        Console.WriteLine("From {0} - {1}", 
            textReader.GetType().Name, textReader.ReadToEnd());
    }
}
using namespace System;
using namespace System::IO;

void WriteText( TextWriter^ textWriter )
{
   textWriter->Write(  "Invalid file path characters are: " );
   textWriter->Write( Path::InvalidPathChars );
   textWriter->Write( Char::Parse( "." ) );
}


void ReadText( TextReader^ textReader )
{
   Console::WriteLine( "From {0} - {1}", textReader->GetType()->Name, textReader->ReadToEnd() );
}


int main()
{
   
   TextWriter^ stringWriter = gcnew StringWriter;
   TextWriter^ streamWriter = gcnew StreamWriter(  "InvalidPathChars.txt" );
   
   WriteText( stringWriter );
   WriteText( streamWriter );
   streamWriter->Close();
   
   TextReader^ stringReader = gcnew StringReader( stringWriter->ToString() );
   TextReader^ streamReader = gcnew StreamReader(  "InvalidPathChars.txt" );
   
   ReadText( stringReader );
   ReadText( streamReader );
   streamReader->Close();
}
import System.*;
import System.IO.*;

class TextRW
{
    public static void main(String[] args)
    {
        TextWriter stringWriter = new StringWriter();
        TextWriter streamWriter = new StreamWriter("InvalidPathChars.txt");
        try {
            WriteText(stringWriter);
            WriteText(streamWriter);
        }
        finally {
            streamWriter.Dispose();
        }
        TextReader stringReader = new StringReader(stringWriter.ToString());
        TextReader streamReader = new StreamReader("InvalidPathChars.txt");
        try {
            ReadText(stringReader);
            ReadText(streamReader);
        }
        finally {
            streamReader.Dispose();
        }        
    } //main

    static void WriteText(TextWriter textWriter)
    {
        textWriter.Write("Invalid file path characters are: ");
        textWriter.Write(Path.InvalidPathChars);
        textWriter.Write('.');
    } //WriteText

    static void ReadText(TextReader textReader) 
    {
        Console.WriteLine("From {0} - {1}", 
            textReader.GetType().get_Name(),textReader.ReadToEnd());
    } //ReadText
} //TextRW

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
    System.IO.TextReader
       System.IO.StreamReader
       System.IO.StringReader

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

TextReader-Member
System.IO-Namespace

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei
Grundlegende Datei-E/A
Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei