StringWriter Класс

Определение

Реализует объект TextWriter для записи сведений в строку. Сведения хранятся в базовом StringBuilder.

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
Наследование
StringWriter
Наследование
Атрибуты

Примеры

В следующем примере кода показано создание непрерывного абзаца из группы предложений с двойным пространством, а затем преобразование абзаца обратно в исходный текст.

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

Комментарии

StringWriter позволяет выполнять синхронную или асинхронную запись в строку. Символ можно написать одновременно с Write(Char) помощью метода или WriteAsync(Char) , строку за раз с помощью Write(String) метода или WriteAsync(String) . Кроме того, с помощью одного из WriteLineAsync методов можно асинхронно написать символ, массив символов или строку, за которой следует признак конца строки.

Примечание

Этот тип реализует интерфейс IDisposable, но никакие ресурсы не удаляет. Это означает, что вам не обязательно его удалять, вызывая непосредственно Dispose() или используя такие языковые конструкции, как using (C#) или Using (Visual Basic).

В следующей таблице перечислены примеры других типичных или связанных задач ввода-вывода.

Действие Раздел с примером
Создание текстового файла. Практическое руководство. Запись текста в файл
Запись в текстовый файл. Практическое руководство. Запись текста в файл
Чтение из текстового файла. Практическое руководство. Чтение текста из файла
Добавление текста в файл. Практическое руководство. Открытие файла журнала и добавление в него данных

File.AppendText

FileInfo.AppendText
Получение размера файла. FileInfo.Length
Получение атрибутов файла. File.GetAttributes
Задайте атрибуты файла. File.SetAttributes
Определите, существует ли файл. File.Exists
Чтение из двоичного файла. Практическое руководство. Считывание данных из нового файла и запись в этот файл
Запись в двоичный файл. Практическое руководство. Считывание данных из нового файла и запись в этот файл

Конструкторы

StringWriter()

Инициализирует новый экземпляр класса StringWriter.

StringWriter(IFormatProvider)

Инициализирует новый экземпляр класса StringWriter указанным элементом управления формата.

StringWriter(StringBuilder)

Инициализирует новый экземпляр класса StringWriter, который производит запись в указанный объект StringBuilder.

StringWriter(StringBuilder, IFormatProvider)

Инициализирует новый экземпляр класса StringWriter, который выполняет запись в указанный объект StringBuilder и имеет указанный поставщик формата.

Поля

CoreNewLine

Сохраняет символы новой строки, используемые для данного TextWriter.

(Унаследовано от TextWriter)

Свойства

Encoding

Получает кодировку Encoding, в которой осуществляется запись выходных данных.

FormatProvider

Возвращает объект, управляющий форматированием.

(Унаследовано от TextWriter)
NewLine

Возвращает или задает признак конца строки, используемой текущим TextWriter.

(Унаследовано от TextWriter)

Методы

Close()

Закрывает текущий StringWriter и базовый поток.

Close()

Закрывает текущий модуль записи и освобождает все системные ресурсы, связанные с ним.

(Унаследовано от TextWriter)
CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, используемые объектом TextWriter.

(Унаследовано от TextWriter)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом StringWriter, а при необходимости освобождает также управляемые ресурсы.

DisposeAsync()

Асинхронно освобождает все ресурсы, используемые объектом TextWriter.

(Унаследовано от TextWriter)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Flush()

Очищает все буферы текущего модуля записи и вызывает немедленную запись всех буферизованных данных на базовое устройство.

(Унаследовано от TextWriter)
FlushAsync()

Асинхронно очищает все буферы текущего средства записи и вызывает запись всех буферизованных данных в базовое устройство.

FlushAsync()

Асинхронно очищает все буферы текущего средства записи и вызывает запись всех буферизованных данных в базовое устройство.

(Унаследовано от TextWriter)
FlushAsync(CancellationToken)

Асинхронно очищает все буферы текущего средства записи и вызывает запись всех буферизованных данных в базовое устройство.

(Унаследовано от TextWriter)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetStringBuilder()

Возвращает базовый объект StringBuilder.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ToString()

Возвращает строку, содержащую символы, записанные в текущий StringWriter к текущему моменту.

Write(Boolean)

Записывает текстовое представление значения типа Boolean в текстовый поток.

(Унаследовано от TextWriter)
Write(Char)

Записывает символ в строку.

Write(Char[])

Записывает массив символов в текстовый поток.

(Унаследовано от TextWriter)
Write(Char[], Int32, Int32)

Записывает в поток дочерний массив символов.

Write(Decimal)

Записывает текстовое представление десятичного значения в текстовый поток.

(Унаследовано от TextWriter)
Write(Double)

Записывает в текстовый поток текстовое представление значения с плавающей запятой размером 8 байт.

(Унаследовано от TextWriter)
Write(Int32)

Записывает в текстовый поток текстовое представление целого числа со знаком размером 4 байта.

(Унаследовано от TextWriter)
Write(Int64)

Записывает в текстовый поток текстовое представление целого числа со знаком размером 8 байт.

(Унаследовано от TextWriter)
Write(Object)

Записывает в текстовый поток текстовое представление объекта с помощью вызова метода ToString для этого объекта.

(Унаследовано от TextWriter)
Write(ReadOnlySpan<Char>)

Записывает строковое представление диапазона символов в текущую строку.

Write(ReadOnlySpan<Char>)

Записывает диапазон символов в текстовый поток.

(Унаследовано от TextWriter)
Write(Single)

Записывает в текстовый поток текстовое представление значения с плавающей запятой размером 4 байта.

(Унаследовано от TextWriter)
Write(String)

Записывает строку в текущую строку.

Write(String, Object)

Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object).

(Унаследовано от TextWriter)
Write(String, Object, Object)

Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object).

(Унаследовано от TextWriter)
Write(String, Object, Object, Object)

Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object, Object).

(Унаследовано от TextWriter)
Write(String, Object[])

Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object[]).

(Унаследовано от TextWriter)
Write(StringBuilder)

Записывает строковое представление построителя строки в текущую строку.

Write(StringBuilder)

Записывает построитель строки в текстовый поток.

(Унаследовано от TextWriter)
Write(UInt32)

Записывает в текстовый поток текстовое представление целого числа без знака размером 4 байта.

(Унаследовано от TextWriter)
Write(UInt64)

Записывает в текстовый поток текстовое представление целого числа без знака размером 8 байт.

(Унаследовано от TextWriter)
WriteAsync(Char)

Асинхронно записывает символ в строку.

WriteAsync(Char)

Выполняет асинхронную запись символа в текстовый поток.

(Унаследовано от TextWriter)
WriteAsync(Char[])

Выполняет асинхронную запись массива символов в текстовый поток.

(Унаследовано от TextWriter)
WriteAsync(Char[], Int32, Int32)

Асинхронно записывает подмассив символов в строку.

WriteAsync(Char[], Int32, Int32)

Асинхронно записывает подмассив символов в текстовый поток.

(Унаследовано от TextWriter)
WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Асинхронно записывает область памяти символов в строку.

WriteAsync(ReadOnlyMemory<Char>, CancellationToken)

Выполняет асинхронную запись области памяти символов в текстовый поток.

(Унаследовано от TextWriter)
WriteAsync(String)

Асинхронно записывает строку в текущую строку.

WriteAsync(String)

Выполняет асинхронную запись строки в текстовый поток.

(Унаследовано от TextWriter)
WriteAsync(StringBuilder, CancellationToken)

Асинхронно записывает строковое представление построителя строки в строку.

WriteAsync(StringBuilder, CancellationToken)

Асинхронно записывает построитель строки в текстовый поток.

(Унаследовано от TextWriter)
WriteLine()

Записывает признак конца строки в текстовый поток.

(Унаследовано от TextWriter)
WriteLine(Boolean)

Записывает в текстовый поток текстовое представление значения типа Boolean, за которым следует знак конца строки.

(Унаследовано от TextWriter)
WriteLine(Char)

Записывает в текстовый поток символ, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Char[])

Записывает в текстовый поток массив символов, за которыми следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Char[], Int32, Int32)

Записывает в текстовый поток подмассив символов, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Decimal)

Записывает в текстовый поток текстовое представление десятичного значения, за которым следует знак конца строки.

(Унаследовано от TextWriter)
WriteLine(Double)

Записывает в текстовый поток текстовое представление значения с плавающей запятой размером 8 байт, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Int32)

Записывает в текстовый поток текстовое представление целого числа со знаком размером 4 байта, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Int64)

Записывает в текстовый поток текстовое представление целого числа со знаком размером 8 байт, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(Object)

Записывает в текстовый поток текстовое представление объекта путем вызова метода ToString для этого объекта, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(ReadOnlySpan<Char>)

Записывает в строку текстовое представление диапазона символов, за которым следует знак конца строки.

WriteLine(ReadOnlySpan<Char>)

Записывает в текстовый поток текстовое представление диапазона символов, за которым следует знак конца строки.

(Унаследовано от TextWriter)
WriteLine(Single)

Записывает в текстовый поток текстовое представление значения с плавающей запятой размером 4 байта, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(String)

Записывает в текстовый поток строку, за которой следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(String, Object)

Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и метод Format(String, Object).

(Унаследовано от TextWriter)
WriteLine(String, Object, Object)

Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object).

(Унаследовано от TextWriter)
WriteLine(String, Object, Object, Object)

Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и Format(String, Object).

(Унаследовано от TextWriter)
WriteLine(String, Object[])

Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и Format(String, Object).

(Унаследовано от TextWriter)
WriteLine(StringBuilder)

Записывает в строку текстовое представление построителя строки, за которым следует знак конца строки.

WriteLine(StringBuilder)

Записывает в текстовый поток текстовое представление построителя строки, за которым следует знак конца строки.

(Унаследовано от TextWriter)
WriteLine(UInt32)

Записывает в текстовый поток текстовое представление целого числа без знака размером 4 байта, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLine(UInt64)

Записывает в текстовый поток текстовое представление целого числа без знака размером 8 байт, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync()

Асинхронно записывает признак конца строки в текстовый поток.

(Унаследовано от TextWriter)
WriteLineAsync(Char)

Асинхронно записывает в строку символ, за которым следует знак конца строки.

WriteLineAsync(Char)

Асинхронно записывает в текстовый поток символ, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync(Char[])

Асинхронно записывает в текстовый поток массив символов, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync(Char[], Int32, Int32)

Асинхронно записывает в строку дочерний массив символов, за которыми следует знак конца строки.

WriteLineAsync(Char[], Int32, Int32)

Асинхронно записывает в текстовый поток подмассив символов, за которым следует признак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Асинхронно записывает строковое представление области памяти символов в текущую строку, за которой следует знак конца строки.

WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken)

Асинхронно записывает в текстовый поток текстовое представление области памяти символов, за которым следует знак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync(String)

Асинхронно записывает строку в текущую строку, за которой следует знак конца строки.

WriteLineAsync(String)

Асинхронно записывает в текстовый поток строку, за которой следует признак конца строки.

(Унаследовано от TextWriter)
WriteLineAsync(StringBuilder, CancellationToken)

Асинхронно записывает строковое представление построителя строки в текущую строку, за которой следует знак конца строки.

WriteLineAsync(StringBuilder, CancellationToken)

Асинхронно записывает в текстовый поток текстовое представление построителя строки, за которым следует знак конца строки.

(Унаследовано от TextWriter)

Явные реализации интерфейса

IDisposable.Dispose()

Описание этого члена см. в разделе Dispose().

(Унаследовано от TextWriter)

Методы расширения

ConfigureAwait(IAsyncDisposable, Boolean)

Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта.

Применяется к

См. также раздел