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 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 методов.

Note

Этот тип реализует 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, IFormatProvider)

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

StringWriter(StringBuilder)

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

Поля

Имя Описание
CoreNewLine

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

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

Свойства

Имя Описание
Encoding

Возвращает значение, Encoding в котором записываются выходные данные.

FormatProvider

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

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

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

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

Методы

Имя Описание
Close()

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

CreateObjRef(Type)

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

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

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

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

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

DisposeAsync()

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

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

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

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

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

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

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

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[], Int32, Int32)

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

Write(Char[])

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

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

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

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

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

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

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

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

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

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

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

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

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

Write(Single)

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

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

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

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

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

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

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

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

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

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

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

Write(UInt32)

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

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

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

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

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

WriteAsync(Char[], Int32, Int32)

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

WriteAsync(Char[])

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

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

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

WriteAsync(String)

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

WriteLine()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WriteLine(Single)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WriteLineAsync(Char[], Int32, Int32)

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

WriteLineAsync(Char[])

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

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

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

WriteLineAsync(String)

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

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

Имя Описание
IDisposable.Dispose()

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

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

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

Имя Описание
ConfigureAwait(IAsyncDisposable, Boolean)

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

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

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