Condividi tramite


StringWriter Classe

Definizione

Implementa un TextWriter per scrivere informazioni in una stringa. Le informazioni vengono archiviate in un StringBuildersottostante.

public ref class StringWriter : System::IO::TextWriter
public class StringWriter : System.IO.TextWriter
[System.Serializable]
public class StringWriter : System.IO.TextWriter
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StringWriter : System.IO.TextWriter
type StringWriter = class
    inherit TextWriter
[<System.Serializable>]
type StringWriter = class
    inherit TextWriter
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StringWriter = class
    inherit TextWriter
Public Class StringWriter
Inherits TextWriter
Ereditarietà
StringWriter
Ereditarietà
Attributi

Esempio

Nell'esempio di codice seguente viene illustrata la creazione di un paragrafo continuo da un gruppo di frasi con spaziatura doppia e quindi la conversione del paragrafo nel testo originale.

using namespace System;
using namespace System::IO;
int main()
{
   String^ textReaderText = "TextReader is the abstract base "
   "class of StreamReader and StringReader, which read "
   "characters from streams and strings, respectively.\n\n"
   "Create an instance of TextReader to open a text file "
   "for reading a specified range of characters, or to "
   "create a reader based on an existing stream.\n\n"
   "You can also use an instance of TextReader to read "
   "text from a custom backing store using the same "
   "APIs you would use for a string or a stream.\n\n";
   Console::WriteLine(  "Original text:\n\n{0}", textReaderText );

   // From textReaderText, create a continuous paragraph 
   // with two spaces between each sentence.
      String^ aLine;
   String^ aParagraph;
   StringReader^ strReader = gcnew StringReader( textReaderText );
   while ( true )
   {
      aLine = strReader->ReadLine();
      if ( aLine != nullptr )
      {
         aParagraph = String::Concat( aParagraph, aLine,  " " );
      }
      else
      {
         aParagraph = String::Concat( aParagraph,  "\n" );
         break;
      }
   }

   Console::WriteLine(  "Modified text:\n\n{0}", aParagraph );
   
   // Re-create textReaderText from aParagraph.
   int intCharacter;
   Char convertedCharacter;
   StringWriter^ strWriter = gcnew StringWriter;
   strReader = gcnew StringReader( aParagraph );
   while ( true )
   {
      intCharacter = strReader->Read();
      
      // Check for the end of the string 
      // before converting to a character.
      if ( intCharacter == -1 )
            break;

      
      convertedCharacter = Convert::ToChar( intCharacter );
      if ( convertedCharacter == '.' )
      {
         strWriter->Write(  ".\n\n" );
         
         // Bypass the spaces between sentences.
         strReader->Read();
         strReader->Read();
      }
      else
      {
         strWriter->Write( convertedCharacter );
      }
   }

   Console::WriteLine(  "\nOriginal text:\n\n{0}", strWriter->ToString() );
}
using System;
using System.IO;

class StringRW
{
    static void Main()
    {
        string textReaderText = "TextReader is the abstract base " +
            "class of StreamReader and StringReader, which read " +
            "characters from streams and strings, respectively.\n\n" +

            "Create an instance of TextReader to open a text file " +
            "for reading a specified range of characters, or to " +
            "create a reader based on an existing stream.\n\n" +

            "You can also use an instance of TextReader to read " +
            "text from a custom backing store using the same " +
            "APIs you would use for a string or a stream.\n\n";

        Console.WriteLine("Original text:\n\n{0}", textReaderText);

        // From textReaderText, create a continuous paragraph
        // with two spaces between each sentence.
        string aLine, aParagraph = null;
        StringReader strReader = new StringReader(textReaderText);
        while(true)
        {
            aLine = strReader.ReadLine();
            if(aLine != null)
            {
                aParagraph = aParagraph + aLine + " ";
            }
            else
            {
                aParagraph = aParagraph + "\n";
                break;
            }
        }
        Console.WriteLine("Modified text:\n\n{0}", aParagraph);

        // Re-create textReaderText from aParagraph.
        int intCharacter;
        char convertedCharacter;
        StringWriter strWriter = new StringWriter();
        strReader = new StringReader(aParagraph);
        while(true)
        {
            intCharacter = strReader.Read();

            // Check for the end of the string
            // before converting to a character.
            if(intCharacter == -1) break;

            convertedCharacter = (char)intCharacter;
            if(convertedCharacter == '.')
            {
                strWriter.Write(".\n\n");

                // Bypass the spaces between sentences.
                strReader.Read();
                strReader.Read();
            }
            else
            {
                strWriter.Write(convertedCharacter);
            }
        }
        Console.WriteLine("\nOriginal text:\n\n{0}",
            strWriter.ToString());
    }
}
Option Explicit
Option Strict

Imports System.IO

Public Class StrReader

    Shared Sub Main()
    
        Dim textReaderText As String = "TextReader is the " & _
            "abstract base class of StreamReader and " & _
            "StringReader, which read characters from streams " & _
            "and strings, respectively." & _
            vbCrLf & vbCrLf & _
            "Create an instance of TextReader to open a text " & _
            "file for reading a specified range of characters, " & _
            "or to create a reader based on an existing stream." & _
            vbCrLf & vbCrLf & _
            "You can also use an instance of TextReader to read " & _
            "text from a custom backing store using the same " & _
            "APIs you would use for a string or a stream." & _
            vbCrLf & vbCrLf

        Console.WriteLine("Original text:" & vbCrLf & vbCrLf & _
            textReaderText)

        ' From textReaderText, create a continuous paragraph 
        ' with two spaces between each sentence.
        Dim aLine, aParagraph As String
        Dim strReader As New StringReader(textReaderText)
        While True
            aLine = strReader.ReadLine()
            If aLine Is Nothing Then
                aParagraph = aParagraph & vbCrLf
                Exit While
            Else
                aParagraph = aParagraph & aLine & " "
            End If
        End While
        Console.WriteLine("Modified text:" & vbCrLf & vbCrLf & _ 
            aParagraph)
    
        ' Re-create textReaderText from aParagraph.
        Dim intCharacter As Integer 
        Dim convertedCharacter As Char 
        Dim strWriter As New StringWriter()
        strReader = New StringReader(aParagraph)
        While True
            intCharacter = strReader.Read()

            ' Check for the end of the string 
            ' before converting to a character.
            If intCharacter = -1 Then
                Exit While
            End If

            convertedCharacter = Convert.ToChar(intCharacter)
            If convertedCharacter = "."C Then
                strWriter.Write("." & vbCrLf & vbCrLf)

                ' Bypass the spaces between sentences.
                strReader.Read()
                strReader.Read()
            Else
                strWriter.Write(convertedCharacter)
            End If
        End While
        Console.WriteLine(vbCrLf & "Original text:" & vbCrLf & _ 
            vbCrLf & strWriter.ToString())

    End Sub
End Class

Commenti

StringWriter consente di scrivere in una stringa in modo sincrono o asincrono. È possibile scrivere un carattere alla volta con il Write(Char) o il metodo WriteAsync(Char), una stringa alla volta usando il Write(String) o il metodo WriteAsync(String). Inoltre, è possibile scrivere un carattere, una matrice di caratteri o una stringa seguita dal terminatore di riga in modo asincrono con uno dei metodi WriteLineAsync.

Nota

Questo tipo implementa l'interfaccia IDisposable, ma non dispone effettivamente di risorse da eliminare. Ciò significa che non è necessario eliminarlo chiamando direttamente Dispose() o usando un costrutto di linguaggio, ad esempio using (in C#) o Using (in Visual Basic).

Nella tabella seguente sono elencati esempi di altre attività di I/O tipiche o correlate.

A questo scopo... Vedere l'esempio in questo argomento...
Creare un file di testo. Procedura: Scrivere testo in un di file
Scrivere in un file di testo. Procedura: Scrivere testo in un di file
Leggere da un file di testo. Procedura: Leggere testo da un file
Aggiungere testo a un file. Procedura: Aprire e accodare a un file di log

File.AppendText

FileInfo.AppendText
Ottenere le dimensioni di un file. FileInfo.Length
Ottenere gli attributi di un file. File.GetAttributes
Impostare gli attributi di un file. File.SetAttributes
Determinare se esiste un file. File.Exists
Leggere da un file binario. Procedura: Leggere e scrivere in un file di dati appena creato
Scrivere in un file binario. Procedura: Leggere e scrivere in un file di dati appena creato

Costruttori

StringWriter()

Inizializza una nuova istanza della classe StringWriter.

StringWriter(IFormatProvider)

Inizializza una nuova istanza della classe StringWriter con il controllo formato specificato.

StringWriter(StringBuilder)

Inizializza una nuova istanza della classe StringWriter che scrive nel StringBuilderspecificato.

StringWriter(StringBuilder, IFormatProvider)

Inizializza una nuova istanza della classe StringWriter che scrive nel StringBuilder specificato e ha il provider di formato specificato.

Campi

CoreNewLine

Archivia i caratteri di nuova riga usati per questo TextWriter.

(Ereditato da TextWriter)

Proprietà

Encoding

Ottiene il Encoding in cui viene scritto l'output.

FormatProvider

Ottiene un oggetto che controlla la formattazione.

(Ereditato da TextWriter)
NewLine

Ottiene o imposta la stringa del terminatore di riga utilizzata dal TextWritercorrente.

(Ereditato da TextWriter)

Metodi

Close()

Chiude il StringWriter corrente e il flusso sottostante.

Close()

Chiude il writer corrente e rilascia tutte le risorse di sistema associate al writer.

(Ereditato da TextWriter)
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate dall'oggetto TextWriter.

(Ereditato da TextWriter)
Dispose(Boolean)

Rilascia le risorse non gestite usate dal StringWriter e, facoltativamente, rilascia le risorse gestite.

DisposeAsync()

Rilascia in modo asincrono tutte le risorse usate dall'oggetto TextWriter.

(Ereditato da TextWriter)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Flush()

Cancella tutti i buffer per il writer corrente e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da TextWriter)
FlushAsync()

Cancella in modo asincrono tutti i buffer per il writer corrente e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante.

FlushAsync()

Cancella in modo asincrono tutti i buffer per il writer corrente e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da TextWriter)
FlushAsync(CancellationToken)

Cancella in modo asincrono tutti i buffer per il writer corrente e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante.

(Ereditato da TextWriter)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetStringBuilder()

Restituisce il StringBuildersottostante.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
ToString()

Restituisce una stringa contenente i caratteri scritti nel StringWriter corrente fino a questo momento.

Write(Boolean)

Scrive nel flusso di testo la rappresentazione testuale di un valore Boolean.

(Ereditato da TextWriter)
Write(Char)

Scrive un carattere nella stringa.

Write(Char[])

Scrive una matrice di caratteri nel flusso di testo.

(Ereditato da TextWriter)
Write(Char[], Int32, Int32)

Scrive una sottomaschera di caratteri nella stringa.

Write(Decimal)

Scrive la rappresentazione testuale di un valore decimale nel flusso di testo.

(Ereditato da TextWriter)
Write(Double)

Scrive la rappresentazione testuale di un valore a virgola mobile a 8 byte nel flusso di testo.

(Ereditato da TextWriter)
Write(Int32)

Scrive la rappresentazione testuale di un intero con segno a 4 byte nel flusso di testo.

(Ereditato da TextWriter)
Write(Int64)

Scrive la rappresentazione testuale di un intero con segno a 8 byte nel flusso di testo.

(Ereditato da TextWriter)
Write(Object)

Scrive la rappresentazione testuale di un oggetto nel flusso di testo chiamando il metodo ToString su tale oggetto.

(Ereditato da TextWriter)
Write(ReadOnlySpan<Char>)

Scrive la rappresentazione di stringa di un intervallo di caratteri nella stringa corrente.

Write(ReadOnlySpan<Char>)

Scrive un intervallo di caratteri nel flusso di testo.

(Ereditato da TextWriter)
Write(Single)

Scrive la rappresentazione testuale di un valore a virgola mobile a 4 byte nel flusso di testo.

(Ereditato da TextWriter)
Write(String)

Scrive una stringa nella stringa corrente.

Write(String, Object)

Scrive una stringa formattata nel flusso di testo usando la stessa semantica del metodo Format(String, Object).

(Ereditato da TextWriter)
Write(String, Object, Object)

Scrive una stringa formattata nel flusso di testo usando la stessa semantica del metodo Format(String, Object, Object).

(Ereditato da TextWriter)
Write(String, Object, Object, Object)

Scrive una stringa formattata nel flusso di testo usando la stessa semantica del metodo Format(String, Object, Object, Object).

(Ereditato da TextWriter)
Write(String, Object[])

Scrive una stringa formattata nel flusso di testo usando la stessa semantica del metodo Format(String, Object[]).

(Ereditato da TextWriter)
Write(String, ReadOnlySpan<Object>)

Scrive una stringa formattata nel flusso di testo usando la stessa semantica di Format(String, ReadOnlySpan<Object>).

(Ereditato da TextWriter)
Write(StringBuilder)

Scrive la rappresentazione di stringa di un generatore di stringhe nella stringa corrente.

Write(StringBuilder)

Scrive un generatore di stringhe nel flusso di testo.

(Ereditato da TextWriter)
Write(UInt32)

Scrive nel flusso di testo la rappresentazione testuale di un intero senza segno a 4 byte.

(Ereditato da TextWriter)
Write(UInt64)

Scrive la rappresentazione testuale di un intero senza segno a 8 byte nel flusso di testo.

(Ereditato da TextWriter)
WriteAsync(Char)

Scrive un carattere nella stringa in modo asincrono.

WriteAsync(Char)

Scrive un carattere nel flusso di testo in modo asincrono.

(Ereditato da TextWriter)
WriteAsync(Char[])

Scrive una matrice di caratteri nel flusso di testo in modo asincrono.

(Ereditato da TextWriter)
WriteAsync(Char[], Int32, Int32)

Scrive una sottomaschera di caratteri nella stringa in modo asincrono.

WriteAsync(Char[], Int32, Int32)

Scrive una sottomaschera di caratteri nel flusso di testo in modo asincrono.

(Ereditato da TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Scrive in modo asincrono un'area di memoria di caratteri nella stringa.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Scrive in modo asincrono un'area di memoria di caratteri nel flusso di testo.

(Ereditato da TextWriter)
WriteAsync(String)

Scrive una stringa nella stringa corrente in modo asincrono.

WriteAsync(String)

Scrive una stringa nel flusso di testo in modo asincrono.

(Ereditato da TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Scrive in modo asincrono la rappresentazione testuale di un generatore di stringhe nella stringa.

WriteAsync(StringBuilder, CancellationToken)

Scrive in modo asincrono un generatore di stringhe nel flusso di testo.

(Ereditato da TextWriter)
WriteLine()

Scrive un terminatore di riga nel flusso di testo.

(Ereditato da TextWriter)
WriteLine(Boolean)

Scrive la rappresentazione testuale di un valore Boolean nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Char)

Scrive un carattere nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Char[])

Scrive una matrice di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Char[], Int32, Int32)

Scrive una sottomaschera di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Decimal)

Scrive la rappresentazione testuale di un valore decimale nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Double)

Scrive la rappresentazione testuale di un valore a virgola mobile a 8 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Int32)

Scrive la rappresentazione testuale di un intero con segno a 4 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Int64)

Scrive la rappresentazione testuale di un intero con segno a 8 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Object)

Scrive la rappresentazione testuale di un oggetto nel flusso di testo chiamando il metodo ToString su tale oggetto, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(ReadOnlySpan<Char>)

Scrive nella stringa una rappresentazione testuale di un intervallo di caratteri, seguito da un terminatore di riga.

WriteLine(ReadOnlySpan<Char>)

Scrive la rappresentazione testuale di un intervallo di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(Single)

Scrive la rappresentazione testuale di un valore a virgola mobile a 4 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(String)

Scrive una stringa nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(String, Object)

Scrive una stringa formattata e una nuova riga nel flusso di testo, usando la stessa semantica del metodo Format(String, Object).

(Ereditato da TextWriter)
WriteLine(String, Object, Object)

Scrive una stringa formattata e una nuova riga nel flusso di testo, usando la stessa semantica del metodo Format(String, Object, Object).

(Ereditato da TextWriter)
WriteLine(String, Object, Object, Object)

Scrive una stringa formattata e una nuova riga nel flusso di testo, usando la stessa semantica di Format(String, Object).

(Ereditato da TextWriter)
WriteLine(String, Object[])

Scrive una stringa formattata e una nuova riga nel flusso di testo, usando la stessa semantica di Format(String, Object).

(Ereditato da TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

Scrive una stringa formattata e una nuova riga nel flusso di testo, usando la stessa semantica di Format(String, ReadOnlySpan<Object>).

(Ereditato da TextWriter)
WriteLine(StringBuilder)

Scrive la rappresentazione testuale di un generatore di stringhe nella stringa, seguita da un terminatore di riga.

WriteLine(StringBuilder)

Scrive la rappresentazione testuale di un generatore di stringhe nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(UInt32)

Scrive la rappresentazione testuale di un intero senza segno a 4 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLine(UInt64)

Scrive la rappresentazione testuale di un intero senza segno a 8 byte nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync()

Scrive in modo asincrono un terminatore di riga nel flusso di testo.

(Ereditato da TextWriter)
WriteLineAsync(Char)

Scrive in modo asincrono un carattere nella stringa, seguito da un terminatore di riga.

WriteLineAsync(Char)

Scrive in modo asincrono un carattere nel flusso di testo, seguito da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync(Char[])

Scrive in modo asincrono una matrice di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync(Char[], Int32, Int32)

scrive in modo asincrono una sottomaschera di caratteri nella stringa, seguita da un terminatore di riga.

WriteLineAsync(Char[], Int32, Int32)

Scrive in modo asincrono una sottomaschera di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Scrive in modo asincrono la rappresentazione di stringa dell'area di memoria dei caratteri nella stringa corrente, seguita da un terminatore di riga.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Scrive in modo asincrono la rappresentazione testuale di un'area di memoria di caratteri nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync(String)

Scrive in modo asincrono una stringa nella stringa corrente, seguita da un terminatore di riga.

WriteLineAsync(String)

Scrive in modo asincrono una stringa nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Scrive in modo asincrono la rappresentazione di stringa del generatore di stringhe nella stringa corrente, seguita da un terminatore di riga.

WriteLineAsync(StringBuilder, CancellationToken)

Scrive in modo asincrono la rappresentazione testuale di un generatore di stringhe nel flusso di testo, seguita da un terminatore di riga.

(Ereditato da TextWriter)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Per una descrizione di questo membro, vedere Dispose().

(Ereditato da TextWriter)

Metodi di estensione

ConfigureAwait(IAsyncDisposable, Boolean)

Configura il modo in cui verranno eseguite le attese nelle attività restituite da un oggetto eliminabile asincrono.

Si applica a

Vedi anche