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 . Чтобы указать метку порядка байтов и определить, возникает ли исключение для недопустимых байтов, используйте конструктор, который принимает объект кодирования в качестве параметра, например StreamWriter(String, Boolean, Encoding) или StreamWriter.
По умолчанию StreamWriter не является потокобезопасной. См TextWriter.Synchronized . сведения о потокобезопасной оболочке.
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.
Конструкторы
StreamWriter(Stream) |
Инициализирует новый экземпляр класса StreamWriter для указанного потока, используя кодировку UTF-8 и размер буфера по умолчанию. |
StreamWriter(Stream, Encoding) |
Инициализирует новый экземпляр класса StreamWriter для указанного потока, используя заданную кодировку и размер буфера по умолчанию. |
StreamWriter(Stream, Encoding, Int32) |
Инициализирует новый экземпляр класса StreamWriter для указанного потока, используя заданную кодировку и размер буфера. |
StreamWriter(Stream, Encoding, Int32, Boolean) |
Инициализирует новый экземпляр класса StreamWriter для указанного потока, используя заданную кодировку и размер буфера, а также при необходимости оставляет поток открытым. |
StreamWriter(String) |
Инициализирует новый экземпляр класса StreamWriter для указанного файла с помощью кодировки по умолчанию и размера буфера. |
StreamWriter(String, Boolean) |
Инициализирует новый экземпляр класса StreamWriter для указанного файла с помощью кодировки по умолчанию и размера буфера. Если файл существует, он может быть либо перезаписан, либо в него могут быть добавлены данные. Если файл не существует, конструктор создает новый файл. |
StreamWriter(String, Boolean, Encoding) |
Инициализирует новый экземпляр класса StreamWriter для указанного файла с помощью указанной кодировки и размера буфера по умолчанию. Если файл существует, он может быть либо перезаписан, либо в него могут быть добавлены данные. Если файл не существует, конструктор создает новый файл. |
StreamWriter(String, Boolean, Encoding, Int32) |
Инициализирует новый экземпляр класса StreamWriter для указанного файла по заданному пути, используя заданную кодировку и размер буфера. Если файл существует, он может быть либо перезаписан, либо в него могут быть добавлены данные. Если файл не существует, конструктор создает новый файл. |
StreamWriter(String, Encoding, FileStreamOptions) |
Инициализирует новый экземпляр StreamWriter класса для указанного файла, используя указанную кодировку и настроенный с помощью указанного FileStreamOptions объекта . |
StreamWriter(String, FileStreamOptions) |
Инициализирует новый экземпляр StreamWriter класса для указанного файла, используя кодировку по умолчанию и настраивая заданный FileStreamOptions объект . |
Поля
CoreNewLine |
Сохраняет символы новой строки, используемые для данного |
Null |
Предоставляет |
Свойства
AutoFlush |
Получает или задает значение, определяющее, будет ли StreamWriter сбрасывать буфер в основной поток после каждого вызова Write(Char). |
BaseStream |
Получает основной поток, связанный с резервным хранилищем. |
Encoding |
Получает кодировку Encoding, в которой осуществляется запись выходных данных. |
FormatProvider |
Возвращает объект, управляющий форматированием. (Унаследовано от TextWriter) |
NewLine |
Возвращает или задает признак конца строки, используемой текущим |
Методы
Close() |
Закрывает текущий объект |
Close() |
Закрывает текущий модуль записи и освобождает все системные ресурсы, связанные с ним. (Унаследовано от TextWriter) |
CreateObjRef(Type) |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
Dispose() |
Освобождает все ресурсы, используемые объектом TextWriter. (Унаследовано от TextWriter) |
Dispose(Boolean) |
Принудительно записывает все буферизированные данные в базовый поток, освобождает неуправляемые ресурсы, используемые StreamWriter, а при необходимости — и управляемые ресурсы. |
DisposeAsync() |
Асинхронно записывает любые буферизованные данные в базовый поток и освобождает неуправляемые ресурсы, используемые StreamWriter. |
DisposeAsync() |
Асинхронно освобождает все ресурсы, используемые объектом TextWriter. (Унаследовано от TextWriter) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Finalize() |
Высвобождает ресурсы текущего StreamWriter до их освобождения сборщиком мусора. |
Flush() |
Очищает все буферы для текущего средства записи и вызывает запись всех данных буфера в основной поток. |
FlushAsync() |
Асинхронно очищает все буферы для этого потока и вызывает запись всех буферизованных данных в базовое устройство. |
FlushAsync() |
Асинхронно очищает все буферы текущего средства записи и вызывает запись всех буферизованных данных в базовое устройство. (Унаследовано от TextWriter) |
FlushAsync(CancellationToken) |
Асинхронно очищает все буферы для этого потока и вызывает запись всех буферизованных данных в базовое устройство. |
FlushAsync(CancellationToken) |
Асинхронно очищает все буферы текущего средства записи и вызывает запись всех буферизованных данных в базовое устройство. (Унаследовано от TextWriter) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetLifetimeService() |
Устаревшие..
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MemberwiseClone(Boolean) |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Write(Boolean) |
Записывает текстовое представление значения типа |
Write(Char) |
Записывает символ в поток. |
Write(Char[]) |
Записывает в поток массив символов. |
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). |
Write(String, Object) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object). (Унаследовано от TextWriter) |
Write(String, Object, Object) |
Записывает форматированную строку в поток, используя ту же семантику, что и Format(String, Object, Object) метод . |
Write(String, Object, Object) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object, Object). (Унаследовано от 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[]) |
Записывает форматированную строку в поток, используя ту же семантику, что и метод Format(String, Object[]). |
Write(String, Object[]) |
Записывает форматированную строку в текстовый поток, используя ту же семантику, что и метод Format(String, Object[]). (Унаследовано от TextWriter) |
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) |
Асинхронно записывает построитель строки в текстовый поток. (Унаследовано от 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) |
Записывает в поток строку, за которой следует признак конца строки. |
WriteLine(String) |
Записывает в текстовый поток строку, за которой следует признак конца строки. (Унаследовано от TextWriter) |
WriteLine(String, Object) |
Записывает форматированную строку и перенос строки в поток, используя ту же семантику, что и метод Format(String, Object). |
WriteLine(String, 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, Object, Object) |
Записывает форматированную строку и перенос строки в поток, используя ту же семантику, что и Format(String, Object). |
WriteLine(String, Object, Object, Object) |
Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и Format(String, Object). (Унаследовано от TextWriter) |
WriteLine(String, Object[]) |
Записывает форматированную строку и перенос строки в поток, используя ту же семантику, что и Format(String, Object). |
WriteLine(String, Object[]) |
Записывает форматированную строку и перенос строки в текстовый поток, используя ту же семантику, что и Format(String, Object). (Унаследовано от TextWriter) |
WriteLine(StringBuilder) |
Записывает в текстовый поток текстовое представление построителя строки, за которым следует знак конца строки. (Унаследовано от TextWriter) |
WriteLine(UInt32) |
Записывает в текстовый поток текстовое представление целого числа без знака размером 4 байта, за которым следует признак конца строки. (Унаследовано от TextWriter) |
WriteLine(UInt64) |
Записывает в текстовый поток текстовое представление целого числа без знака размером 8 байт, за которым следует признак конца строки. (Унаследовано от TextWriter) |
WriteLineAsync() |
Асинхронно записывает признак конца строки в поток. |
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) |
Асинхронно записывает в текстовый поток текстовое представление построителя строки, за которым следует знак конца строки. (Унаследовано от TextWriter) |
Явные реализации интерфейса
IDisposable.Dispose() |
Описание этого члена см. в разделе Dispose(). (Унаследовано от TextWriter) |
Методы расширения
ConfigureAwait(IAsyncDisposable, Boolean) |
Настраивает способ выполнения ожиданий для задач, возвращаемых из асинхронного высвобождаемого объекта. |
Применяется к
См. также раздел
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру