Freigeben über


TextWriter-Klasse

Stellt einen Writer dar, der eine sequenzielle Serie von Zeichen schreiben kann. Diese Klasse ist abstrakt.

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

Syntax

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

Hinweise

TextWriter ist die abstrakte Basisklasse von StreamWriter und StringWriter, die Zeichen in Streams bzw. Zeichenfolgen schreiben. Erstellen Sie eine Instanz von TextWriter, um ein Objekt in eine Zeichenfolge und Zeichenfolgen in eine Datei zu schreiben oder um XML zu serialisieren. Sie können auch mithilfe einer Instanz von TextWriter Text in einen benutzerdefinierten Sicherungsspeicher unter Verwendung derselben APIs schreiben, die Sie für eine Zeichenfolge oder einen Stream verwenden würden, oder Unterstützung für die Textformatierung hinzufügen.

Alle Write-Methoden von TextWriter mit primitiven Datentypen als Parameter schreiben die Werte als Zeichenfolgen.

In der Standardeinstellung ist TextWriter nicht threadsicher. Informationen über einen threadsicheren Wrapper finden Sie unter TextWriter.Synchronized.

Eine abgeleitete Klasse muss mindestens die Write-Methode implementieren, um eine verwendbare Instanz von TextWriter darzustellen.

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Eine Textdatei erstellen.

Gewusst wie: Schreiben von Text in eine Datei

In eine Textdatei schreiben.

Gewusst wie: Schreiben von Text in eine Datei

Aus einer Textdatei lesen.

Gewusst wie: Lesen aus einer Textdatei

Text an eine Datei anfügen.

Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText

Die Größe einer Datei abrufen.

FileInfo.Length

Die Attribute einer Datei abrufen.

File.GetAttributes

Die Attribute einer Datei festlegen.

File.SetAttributes

Bestimmen, ob eine Datei vorhanden ist.

File.Exists

Aus einer Binärdatei lesen.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

In eine Binärdatei schreiben.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Beispiel

Im folgenden Codebeispiel wird das polymorphe Verhalten des TextReader-Typs und TextWriter-Typs veranschaulicht. 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.TextWriter
       System.CodeDom.Compiler.IndentedTextWriter
       System.IO.StreamWriter
       System.IO.StringWriter
       System.Web.HttpWriter
       System.Web.UI.HtmlTextWriter

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

TextWriter-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