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
- Наследование
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано создание непрерывного абзаца из группы двойных предложений, а затем преобразование абзаца обратно в исходный текст.
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 |
Сохраняет новые символы, используемые для этого |
Свойства
Encoding |
Получает Encoding, в которой записываются выходные данные. |
FormatProvider |
Возвращает объект, который управляет форматированием. (Унаследовано от TextWriter) |
NewLine |
Возвращает или задает строку конца строки, используемую текущим |
Методы
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() |
Возвращает строку, содержащую символы, записанные в текущую |
Write(Boolean) |
Записывает текстовое представление значения |
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) |
Записывает текстовое представление объекта в текстовый поток, вызвав метод |
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(String, ReadOnlySpan<Object>) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и Format(String, ReadOnlySpan<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) |
Записывает текстовое представление значения |
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) |
Записывает текстовое представление объекта в текстовый поток, вызывая метод |
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(String, ReadOnlySpan<Object>) |
Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что и Format(String, ReadOnlySpan<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) |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |