StreamWriter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Реализует TextWriter код для записи символов в поток в определенном кодировании.
public ref class StreamWriter : System::IO::TextWriter
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamWriter : System.IO.TextWriter
type StreamWriter = class
inherit TextWriter
[<System.Serializable>]
type StreamWriter = class
inherit TextWriter
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamWriter = class
inherit TextWriter
Public Class StreamWriter
Inherits TextWriter
- Наследование
- Наследование
- Атрибуты
Примеры
В следующем примере показано, как использовать StreamWriter объект для записи файла, который содержит каталоги на диске C, а затем использует StreamReader объект для чтения и отображения каждого имени каталога. Рекомендуется использовать эти объекты в using инструкции, чтобы неуправляемые ресурсы были правильно удалены. Оператор using автоматически вызывает Dispose объект при завершении кода, использующий его. Конструктор, используемый в этом примере, не поддерживается для использования в приложениях Магазина Windows.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace StreamReadWrite
{
class Program
{
static void Main(string[] args)
{
// Get the directories currently on the C drive.
DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();
// Write each directory name to a file.
using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
{
foreach (DirectoryInfo dir in cDirs)
{
sw.WriteLine(dir.Name);
}
}
// Read and show each line from the file.
string line = "";
using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
{
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
}
Imports System.IO
Class Program
Shared Sub Main()
' Get the directories currently on the C drive.
Dim cDirs As DirectoryInfo() = New DirectoryInfo("c:\").GetDirectories()
' Write each directory name to a file.
Using sw As StreamWriter = New StreamWriter("CDriveDirs.txt")
For Each Dir As DirectoryInfo In cDirs
sw.WriteLine(Dir.Name)
Next
End Using
'Read and show each line from the file.
Dim line As String = ""
Using sr As StreamReader = New StreamReader("CDriveDirs.txt")
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
End Using
End Sub
End Class
Комментарии
StreamWriter предназначен для вывода символов в определенной кодировке, а классы, производные от Stream них, предназначены для ввода и вывода байтов.
Важный
Этот тип реализует IDisposable интерфейс. Завершив использование типа, его следует удалить напрямую или косвенно. Чтобы удалить тип напрямую, вызовите его Dispose метод в блоке try/catch . Чтобы удалить его косвенно, используйте конструкцию языка, например using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в IDisposable разделе интерфейса.
StreamWriter по умолчанию используется экземпляр UTF8Encoding , если не указано в противном случае. Этот экземпляр создается без метки порядка байтов UTF8Encoding (BOM), поэтому его GetPreamble метод возвращает пустой массив байтов. Кодировка UTF-8 по умолчанию для этого конструктора создает исключение для недопустимых байтов. Это поведение отличается от поведения, предоставленного объектом кодирования в свойстве Encoding.UTF8 . Чтобы указать BOM и определить, создается ли исключение в недопустимых байтах, используйте конструктор, принимаюющий объект кодирования в качестве параметра, например StreamWriter(String, Boolean, Encoding) или StreamWriter.
По умолчанию StreamWriter не является потокобезопасной. См TextWriter.Synchronized . сведения о потокобезопасной оболочке.
Список распространенных задач ввода-вывода см. в разделе Распространенные задачи ввода-вывода.
Конструкторы
| Имя | Описание |
|---|---|
| StreamWriter(Stream, Encoding, Int32, Boolean) |
Инициализирует новый экземпляр класса для указанного потока с помощью указанного StreamWriter кодирования и размера буфера, а также при необходимости оставляет поток открытым. |
| StreamWriter(Stream, Encoding, Int32) |
Инициализирует новый экземпляр класса для указанного потока с помощью указанного StreamWriter размера кодировки и буфера. |
| StreamWriter(Stream, Encoding) |
Инициализирует новый экземпляр класса для указанного потока с помощью указанной StreamWriter кодировки и размера буфера по умолчанию. |
| StreamWriter(Stream) |
Инициализирует новый экземпляр класса для указанного StreamWriter потока с помощью кодировки UTF-8 и размера буфера по умолчанию. |
| StreamWriter(String, Boolean, Encoding, Int32) |
Инициализирует новый экземпляр класса для указанного StreamWriter файла по указанному пути, используя указанный размер кодировки и буфера. Если файл существует, он может быть перезаписан или добавлен в него. Если файл не существует, этот конструктор создает новый файл. |
| StreamWriter(String, Boolean, Encoding) |
Инициализирует новый экземпляр класса для указанного файла с помощью указанного StreamWriter кодирования и размера буфера по умолчанию. Если файл существует, он может быть перезаписан или добавлен в него. Если файл не существует, этот конструктор создает новый файл. |
| StreamWriter(String, Boolean) |
Инициализирует новый экземпляр класса для указанного файла с помощью кодировки StreamWriter по умолчанию и размера буфера. Если файл существует, он может быть перезаписан или добавлен в него. Если файл не существует, этот конструктор создает новый файл. |
| StreamWriter(String, Encoding, FileStreamOptions) |
Инициализирует новый экземпляр класса для указанного StreamWriter файла, используя указанную кодировку и настроенный с указанным FileStreamOptions объектом. |
| StreamWriter(String, FileStreamOptions) |
Инициализирует новый экземпляр класса для указанного StreamWriter файла, используя кодировку по умолчанию и настроенный с указанным FileStreamOptions объектом. |
| StreamWriter(String) |
Инициализирует новый экземпляр класса для указанного файла с помощью кодировки StreamWriter по умолчанию и размера буфера. |
Поля
| Имя | Описание |
|---|---|
| CoreNewLine |
Сохраняет новые символы, используемые для этого |
| Null |
Предоставляет хранилище без резервного |
Свойства
| Имя | Описание |
|---|---|
| AutoFlush |
Возвращает или задает значение, указывающее, будет ли StreamWriter буфер сбрасываться в базовый поток после каждого вызова Write(Char). |
| BaseStream |
Возвращает базовый поток, который взаимодействует с резервным хранилищем. |
| Encoding |
Возвращает значение, Encoding в котором записываются выходные данные. |
| FormatProvider |
Возвращает объект, который управляет форматированием. (Унаследовано от TextWriter) |
| NewLine |
Возвращает или задает строку конца строки, используемую текущим |
Методы
| Имя | Описание |
|---|---|
| Close() |
Закрывает текущий |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Dispose() |
Освобождает все ресурсы, используемые TextWriter объектом. (Унаследовано от TextWriter) |
| Dispose(Boolean) |
Вызывает запись всех буферизованных данных в базовый поток, освобождает неуправляемые ресурсы, используемые StreamWriterими, а также управляемые ресурсы. |
| DisposeAsync() |
Асинхронно записывает все буферизованные данные в базовый поток и освобождает неуправляемые ресурсы, используемые объектом StreamWriter. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Finalize() |
Освобождает ресурсы текущего StreamWriter , прежде чем он будет восстановлен сборщиком мусора. |
| Flush() |
Очищает все буферы для текущего модуля записи и приводит к записи всех буферных данных в базовый поток. |
| FlushAsync() |
Очищает все буферы для этого потока асинхронно и приводит к записи всех буферных данных на базовое устройство. |
| FlushAsync(CancellationToken) |
Очищает все буферы для этого потока асинхронно и приводит к записи всех буферных данных на базовое устройство. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| Write(Boolean) |
Записывает текстовое представление значения |
| Write(Char) |
Записывает символ в поток. |
| Write(Char[], Int32, Int32) |
Записывает вложенные символы в поток. |
| Write(Char[]) |
Записывает массив символов в поток. |
| Write(Decimal) |
Записывает текстовое представление десятичного значения в текстовый поток. (Унаследовано от TextWriter) |
| Write(Double) |
Записывает текстовое представление 8-байтового значения с плавающей запятой в текстовый поток. (Унаследовано от TextWriter) |
| Write(Int32) |
Записывает текстовое представление 4-байтового целого числа со знаком в текстовый поток. (Унаследовано от TextWriter) |
| Write(Int64) |
Записывает текстовое представление 8-байтового целого числа со знаком в текстовый поток. (Унаследовано от TextWriter) |
| Write(Object) |
Записывает текстовое представление объекта в текстовый поток, вызвав метод |
| Write(ReadOnlySpan<Char>) |
Записывает диапазон символов в поток. |
| Write(Rune) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| Write(Single) |
Записывает текстовое представление 4-байтового значения с плавающей запятой в текстовый поток. (Унаследовано от TextWriter) |
| Write(String, Object, Object, Object) |
Записывает форматированную строку в поток, используя ту же семантику, что Format(String, Object, Object, Object) и метод. |
| Write(String, Object, Object, Object) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object, Object). (Унаследовано от TextWriter) |
| Write(String, Object, Object) |
Записывает форматированную строку в поток, используя ту же семантику, что Format(String, Object, Object) и метод. |
| Write(String, Object, Object) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object). (Унаследовано от TextWriter) |
| Write(String, Object) |
Записывает форматированную строку в поток, используя ту же семантику, что Format(String, Object) и метод. |
| Write(String, Object) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object). (Унаследовано от TextWriter) |
| Write(String, Object[]) |
Записывает форматированную строку в поток, используя ту же семантику, что Format(String, Object[]) и метод. |
| Write(String, Object[]) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object[]). (Унаследовано от TextWriter) |
| Write(String, ReadOnlySpan<Object>) |
Записывает форматированную строку в поток, используя ту же семантику, что Format(String, ReadOnlySpan<Object>)и . |
| Write(String) |
Записывает строку в поток. |
| Write(StringBuilder) |
Записывает построитель строк в текстовый поток. (Унаследовано от TextWriter) |
| Write(UInt32) |
Записывает текстовое представление 4-байтового целого числа без знака в текстовый поток. (Унаследовано от TextWriter) |
| Write(UInt64) |
Записывает текстовое представление 8-байтового целого числа без знака в текстовый поток. (Унаследовано от TextWriter) |
| WriteAsync(Char) |
Асинхронно записывает символ в поток. |
| WriteAsync(Char[], Int32, Int32) |
Асинхронно записывает вложенные символы в поток. |
| WriteAsync(Char[]) |
Записывает массив символов в текстовый поток асинхронно. (Унаследовано от TextWriter) |
| WriteAsync(ReadOnlyMemory<Char>, CancellationToken) |
Асинхронно записывает область памяти символов в поток. |
| WriteAsync(Rune) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteAsync(String, CancellationToken) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteAsync(String) |
Асинхронно записывает строку в поток. |
| WriteAsync(StringBuilder, CancellationToken) |
Асинхронно записывает построитель строк в текстовый поток. (Унаследовано от TextWriter) |
| WriteLine() |
Записывает конца строки в текстовый поток. (Унаследовано от TextWriter) |
| WriteLine(Boolean) |
Записывает текстовое представление |
| 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) |
Записывает текстовое представление объекта в текстовый поток, вызывая |
| WriteLine(ReadOnlySpan<Char>) |
Записывает текстовое представление диапазона символов в поток, за которым следует терминатор строки. |
| WriteLine(Rune) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteLine(Single) |
Записывает текстовое представление 4-байтового значения с плавающей запятой в текстовый поток, а затем конца строки. (Унаследовано от TextWriter) |
| WriteLine(String, Object, Object, Object) |
Записывает форматированную строку и новую строку в поток, используя ту же семантику, что Format(String, Object)и . |
| WriteLine(String, Object, Object, Object) |
Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что Format(String, Object)и . (Унаследовано от TextWriter) |
| WriteLine(String, Object, Object) |
Записывает форматированную строку и новую строку в поток, используя ту же семантику, что Format(String, Object, Object) и метод. |
| WriteLine(String, Object, Object) |
Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что Format(String, Object, Object) и метод. (Унаследовано от TextWriter) |
| WriteLine(String, Object) |
Записывает форматированную строку и новую строку в поток, используя ту же семантику, что Format(String, Object) и метод. |
| WriteLine(String, Object) |
Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что Format(String, Object) и метод. (Унаследовано от TextWriter) |
| WriteLine(String, Object[]) |
Записывает форматированную строку и новую строку в поток, используя ту же семантику, что Format(String, Object)и . |
| WriteLine(String, Object[]) |
Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что Format(String, Object)и . (Унаследовано от TextWriter) |
| WriteLine(String, ReadOnlySpan<Object>) |
Записывает форматированную строку и новую строку в поток, используя ту же семантику, что Format(String, ReadOnlySpan<Object>)и . |
| WriteLine(String) |
Записывает строку в поток, за которой следует конца строки. |
| WriteLine(String) |
Записывает строку в текстовый поток, за которой следует терминатор строки. (Унаследовано от TextWriter) |
| WriteLine(StringBuilder) |
Записывает текстовое представление построителя строк в текстовый поток, за которым следует терминатор строки. (Унаследовано от TextWriter) |
| WriteLine(UInt32) |
Записывает текстовое представление 4-байтового целого числа без знака в текстовый поток, за которым следует терминатор строки. (Унаследовано от TextWriter) |
| WriteLine(UInt64) |
Записывает текстовое представление 8-байтового целого числа без знака в текстовый поток, а затем конца строки. (Унаследовано от TextWriter) |
| WriteLineAsync() |
Асинхронно записывает конца строки в поток. |
| WriteLineAsync(CancellationToken) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteLineAsync(Char) |
Асинхронно записывает символ в поток, за которым следует терминатор строки. |
| WriteLineAsync(Char[], Int32, Int32) |
Асинхронно записывает вложенные символы в поток, за которым следует терминатор строки. |
| WriteLineAsync(Char[]) |
Асинхронно записывает массив символов в текстовый поток, за которым следует терминатор строки. (Унаследовано от TextWriter) |
| WriteLineAsync(ReadOnlyMemory<Char>, CancellationToken) |
Асинхронно записывает текстовое представление области памяти символов в поток, за которым следует терминатор строки. |
| WriteLineAsync(Rune) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteLineAsync(String, CancellationToken) |
Реализует TextWriter код для записи символов в поток в определенном кодировании. (Унаследовано от TextWriter) |
| WriteLineAsync(String) |
Асинхронно записывает строку в поток, за которой следует терминатор строки. |
| WriteLineAsync(StringBuilder, CancellationToken) |
Асинхронно записывает текстовое представление построителя строк в текстовый поток, за которым следует терминатор строки. (Унаследовано от TextWriter) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Описание этого элемента см. в разделе Dispose(). (Унаследовано от TextWriter) |
Методы расширения
| Имя | Описание |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Настраивает способ ожидания задач, возвращаемых из асинхронного удаления. |