Compartir a través de


StringWriter Clase

Definición

Implementa un TextWriter para escribir información en una cadena. La información se almacena en un StringBuildersubyacente.

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
Herencia
StringWriter
Herencia
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra la creación de un párrafo continuo a partir de un grupo de oraciones con doble espacio y, a continuación, la conversión del párrafo al texto original.

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

Comentarios

StringWriter permite escribir en una cadena de forma sincrónica o asincrónica. Puede escribir un carácter a la vez con el Write(Char) o el método WriteAsync(Char), una cadena a la vez mediante el Write(String) o el método WriteAsync(String). Además, puede escribir un carácter, una matriz de caracteres o una cadena seguida del terminador de línea de forma asincrónica con uno de los métodos WriteLineAsync.

Nota

Este tipo implementa la interfaz IDisposable, pero realmente no tiene ningún recurso para eliminar. Esto significa que no es necesario eliminarlo llamando directamente a Dispose() o mediante una construcción de lenguaje como using (en C#) o Using (en Visual Basic).

En la tabla siguiente se enumeran ejemplos de otras tareas de E/S típicas o relacionadas.

Para hacer esto... Vea el ejemplo de este tema...
Cree un archivo de texto. Cómo: Escribir texto en un archivo
Escribir en un archivo de texto. Cómo: Escribir texto en un archivo
Lee desde un archivo de texto. Cómo: Leer texto de un de archivos
Anexe texto a un archivo. Cómo: Abrir y anexar a un archivo de registro

File.AppendText

FileInfo.AppendText
Obtenga el tamaño de un archivo. FileInfo.Length
Obtiene los atributos de un archivo. File.GetAttributes
Establezca los atributos de un archivo. File.SetAttributes
Determine si existe un archivo. File.Exists
Lee desde un archivo binario. Cómo: Leer y escribir en un archivo de datos recién creado
Escribir en un archivo binario. Cómo: Leer y escribir en un archivo de datos recién creado

Constructores

StringWriter()

Inicializa una nueva instancia de la clase StringWriter.

StringWriter(IFormatProvider)

Inicializa una nueva instancia de la clase StringWriter con el control de formato especificado.

StringWriter(StringBuilder)

Inicializa una nueva instancia de la clase StringWriter que escribe en el StringBuilderespecificado.

StringWriter(StringBuilder, IFormatProvider)

Inicializa una nueva instancia de la clase StringWriter que escribe en el StringBuilder especificado y tiene el proveedor de formato especificado.

Campos

CoreNewLine

Almacena los caracteres de nueva línea usados para este TextWriter.

(Heredado de TextWriter)

Propiedades

Encoding

Obtiene el Encoding en el que se escribe la salida.

FormatProvider

Obtiene un objeto que controla el formato.

(Heredado de TextWriter)
NewLine

Obtiene o establece la cadena de terminador de línea usada por el TextWriteractual.

(Heredado de TextWriter)

Métodos

Close()

Cierra el StringWriter actual y la secuencia subyacente.

Close()

Cierra el escritor actual y libera los recursos del sistema asociados al escritor.

(Heredado de TextWriter)
CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos utilizados por el objeto TextWriter.

(Heredado de TextWriter)
Dispose(Boolean)

Libera los recursos no administrados usados por el StringWriter y, opcionalmente, libera los recursos administrados.

DisposeAsync()

Libera de forma asincrónica todos los recursos utilizados por el objeto TextWriter.

(Heredado de TextWriter)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Flush()

Borra todos los búferes del escritor actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de TextWriter)
FlushAsync()

Borra de forma asincrónica todos los búferes del escritor actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

FlushAsync()

Borra de forma asincrónica todos los búferes del escritor actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de TextWriter)
FlushAsync(CancellationToken)

Borra de forma asincrónica todos los búferes del escritor actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

(Heredado de TextWriter)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetStringBuilder()

Devuelve el StringBuildersubyacente .

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que contiene los caracteres escritos en el StringWriter actual hasta ahora.

Write(Boolean)

Escribe la representación de texto de un valor de Boolean en la secuencia de texto.

(Heredado de TextWriter)
Write(Char)

Escribe un carácter en la cadena.

Write(Char[])

Escribe una matriz de caracteres en la secuencia de texto.

(Heredado de TextWriter)
Write(Char[], Int32, Int32)

Escribe una subbarray de caracteres en la cadena.

Write(Decimal)

Escribe la representación de texto de un valor decimal en la secuencia de texto.

(Heredado de TextWriter)
Write(Double)

Escribe la representación de texto de un valor de punto flotante de 8 bytes en la secuencia de texto.

(Heredado de TextWriter)
Write(Int32)

Escribe la representación de texto de un entero con signo de 4 bytes en la secuencia de texto.

(Heredado de TextWriter)
Write(Int64)

Escribe la representación de texto de un entero con signo de 8 bytes en la secuencia de texto.

(Heredado de TextWriter)
Write(Object)

Escribe la representación de texto de un objeto en la secuencia de texto llamando al método ToString en ese objeto.

(Heredado de TextWriter)
Write(ReadOnlySpan<Char>)

Escribe la representación de cadena de un intervalo de caracteres en la cadena actual.

Write(ReadOnlySpan<Char>)

Escribe un intervalo de caracteres en la secuencia de texto.

(Heredado de TextWriter)
Write(Single)

Escribe la representación de texto de un valor de punto flotante de 4 bytes en la secuencia de texto.

(Heredado de TextWriter)
Write(String)

Escribe una cadena en la cadena actual.

Write(String, Object)

Escribe una cadena con formato en la secuencia de texto, utilizando la misma semántica que el método Format(String, Object).

(Heredado de TextWriter)
Write(String, Object, Object)

Escribe una cadena con formato en la secuencia de texto con la misma semántica que el método Format(String, Object, Object).

(Heredado de TextWriter)
Write(String, Object, Object, Object)

Escribe una cadena con formato en la secuencia de texto, utilizando la misma semántica que el método Format(String, Object, Object, Object).

(Heredado de TextWriter)
Write(String, Object[])

Escribe una cadena con formato en la secuencia de texto, utilizando la misma semántica que el método Format(String, Object[]).

(Heredado de TextWriter)
Write(String, ReadOnlySpan<Object>)

Escribe una cadena con formato en la secuencia de texto, con la misma semántica que Format(String, ReadOnlySpan<Object>).

(Heredado de TextWriter)
Write(StringBuilder)

Escribe la representación de cadena de un generador de cadenas en la cadena actual.

Write(StringBuilder)

Escribe un generador de cadenas en la secuencia de texto.

(Heredado de TextWriter)
Write(UInt32)

Escribe la representación de texto de un entero de 4 bytes sin signo en la secuencia de texto.

(Heredado de TextWriter)
Write(UInt64)

Escribe la representación de texto de un entero de 8 bytes sin signo en la secuencia de texto.

(Heredado de TextWriter)
WriteAsync(Char)

Escribe un carácter en la cadena de forma asincrónica.

WriteAsync(Char)

Escribe un carácter en la secuencia de texto de forma asincrónica.

(Heredado de TextWriter)
WriteAsync(Char[])

Escribe una matriz de caracteres en la secuencia de texto de forma asincrónica.

(Heredado de TextWriter)
WriteAsync(Char[], Int32, Int32)

Escribe una subbarra de caracteres en la cadena de forma asincrónica.

WriteAsync(Char[], Int32, Int32)

Escribe una subbarra de caracteres en la secuencia de texto de forma asincrónica.

(Heredado de TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Escribe de forma asincrónica una región de memoria de caracteres en la cadena.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Escribe de forma asincrónica una región de memoria de caracteres en la secuencia de texto.

(Heredado de TextWriter)
WriteAsync(String)

Escribe una cadena en la cadena actual de forma asincrónica.

WriteAsync(String)

Escribe una cadena en la secuencia de texto de forma asincrónica.

(Heredado de TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Escribe de forma asincrónica la representación de texto de un generador de cadenas en la cadena.

WriteAsync(StringBuilder, CancellationToken)

Escribe de forma asincrónica un generador de cadenas en la secuencia de texto.

(Heredado de TextWriter)
WriteLine()

Escribe un terminador de línea en la secuencia de texto.

(Heredado de TextWriter)
WriteLine(Boolean)

Escribe la representación de texto de un valor de Boolean en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Char)

Escribe un carácter en la secuencia de texto, seguido de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Char[])

Escribe una matriz de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Char[], Int32, Int32)

Escribe una subbarra de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Decimal)

Escribe la representación de texto de un valor decimal en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Double)

Escribe la representación de texto de un valor de punto flotante de 8 bytes en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Int32)

Escribe la representación de texto de un entero con signo de 4 bytes en la secuencia de texto, seguido de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Int64)

Escribe la representación de texto de un entero con signo de 8 bytes en la secuencia de texto, seguido de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Object)

Escribe la representación de texto de un objeto en la secuencia de texto llamando al método ToString en ese objeto, seguido de un terminador de línea.

(Heredado de TextWriter)
WriteLine(ReadOnlySpan<Char>)

Escribe la representación de texto un intervalo de caracteres en la cadena, seguido de un terminador de línea.

WriteLine(ReadOnlySpan<Char>)

Escribe la representación de texto de un intervalo de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(Single)

Escribe la representación de texto de un valor de punto flotante de 4 bytes en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(String)

Escribe una cadena en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(String, Object)

Escribe una cadena con formato y una nueva línea en la secuencia de texto, utilizando la misma semántica que el método Format(String, Object).

(Heredado de TextWriter)
WriteLine(String, Object, Object)

Escribe una cadena con formato y una nueva línea en la secuencia de texto, utilizando la misma semántica que el método Format(String, Object, Object).

(Heredado de TextWriter)
WriteLine(String, Object, Object, Object)

Escribe una cadena con formato y una nueva línea en la secuencia de texto, con la misma semántica que Format(String, Object).

(Heredado de TextWriter)
WriteLine(String, Object[])

Escribe una cadena con formato y una nueva línea en la secuencia de texto, con la misma semántica que Format(String, Object).

(Heredado de TextWriter)
WriteLine(String, ReadOnlySpan<Object>)

Escribe una cadena con formato y una nueva línea en la secuencia de texto, con la misma semántica que Format(String, ReadOnlySpan<Object>).

(Heredado de TextWriter)
WriteLine(StringBuilder)

Escribe la representación de texto de un generador de cadenas en la cadena, seguida de un terminador de línea.

WriteLine(StringBuilder)

Escribe la representación de texto de un generador de cadenas en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(UInt32)

Escribe la representación de texto de un entero de 4 bytes sin signo en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLine(UInt64)

Escribe la representación de texto de un entero de 8 bytes sin signo en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync()

Escribe de forma asincrónica un terminador de línea en la secuencia de texto.

(Heredado de TextWriter)
WriteLineAsync(Char)

Escribe de forma asincrónica un carácter en la cadena, seguido de un terminador de línea.

WriteLineAsync(Char)

Escribe de forma asincrónica un carácter en la secuencia de texto, seguido de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync(Char[])

Escribe de forma asincrónica una matriz de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync(Char[], Int32, Int32)

escribe asincrónicamente una subbarray de caracteres en la cadena, seguida de un terminador de línea.

WriteLineAsync(Char[], Int32, Int32)

Escribe de forma asincrónica una subbarray de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Escribe asincrónicamente la representación de cadena de la región de memoria de caracteres en la cadena actual, seguida de un terminador de línea.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Escribe de forma asincrónica la representación de texto de una región de memoria de caracteres en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync(String)

Escribe de forma asincrónica una cadena en la cadena actual, seguida de un terminador de línea.

WriteLineAsync(String)

Escribe de forma asincrónica una cadena en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Escribe de forma asincrónica la representación de cadena del generador de cadenas en la cadena actual, seguida de un terminador de línea.

WriteLineAsync(StringBuilder, CancellationToken)

Escribe de forma asincrónica la representación de texto de un generador de cadenas en la secuencia de texto, seguida de un terminador de línea.

(Heredado de TextWriter)

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Para obtener una descripción de este miembro, consulte Dispose().

(Heredado de TextWriter)

Métodos de extensión

ConfigureAwait(IAsyncDisposable, Boolean)

Configura cómo se realizarán las esperas en las tareas devueltas desde un descartable asincrónico.

Se aplica a

Consulte también