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(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(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) |
Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта. |
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по