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. |
|
In eine Textdatei schreiben. |
|
Aus einer Textdatei lesen. |
|
Text an eine Datei anfügen. |
|
Die Größe einer Datei abrufen. |
|
Die Attribute einer Datei abrufen. |
|
Die Attribute einer Datei festlegen. |
|
Bestimmen, ob eine Datei vorhanden ist. |
|
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