Esporta (0) Stampa
Espandi tutto

Classe TextWriter

Aggiornamento: novembre 2007

Rappresenta un writer in grado di scrivere una serie sequenziale di caratteri. Questa classe è astratta.

Spazio dei nomi:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class TextWriter : MarshalByRefObject, 
	IDisposable
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public abstract class TextWriter extends MarshalByRefObject implements IDisposable
public abstract class TextWriter extends MarshalByRefObject implements IDisposable

TextWriter è la classe base astratta di StreamWriter e StringWriter, che scrivono rispettivamente i caratteri nei flussi e nelle stringhe. Creare un'istanza di TextWriter per scrivere un oggetto in una stringa, scrivere stringhe in un file o serializzare XML. È anche possibile utilizzare un'istanza di TextWriter per scrivere il testo in un archivio di backup personalizzato tramite le stesse API che si utilizzano per una stringa o un flusso oppure per aggiungere il supporto per la formattazione del testo.

Tutti i metodi Write di TextWriter che dispongono di tipi di dati primitivi come parametri scrivono i valori come stringhe.

Per impostazione predefinita, TextWriter non è thread-safe. Per un wrapper thread-safe, vedere TextWriter.Synchronized.

Per un elenco di attività di I/O comuni, vedere Attività di I/O comuni.

Note per gli eredi:

È necessario che una classe derivata implementi almeno il metodo Write per creare un'istanza utile della classe TextWriter.

Nell'esempio di codice riportato di seguito viene illustrato il comportamento polimorfico dei tipi TextReader e TextWriter. Poiché aStringWriter e aStreamWriter sono entrambi tipi TextWriter, il metodo WriteVowel viene chiamato con entrambi gli oggetti e vengono eseguiti i metodi Write associati a ogni specifico tipo. Analogamente, il metodo ReadText viene chiamato con aStringReader e aStreamReader e viene eseguito il metodo ReadToEnd corretto. Per aStringWriter e aStringReader, l'archivio di backup è una stringa, mentre un file è l'archivio di backup per aStreamWriter e aStreamReader.

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());
    }
}


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


Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile per Smartphone, Windows Mobile per Pocket PC, Xbox 360

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supportato in: 3.5, 2.0, 1.0

XNA Framework

Supportato in: 2.0, 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft