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
Наследование
Атрибуты

Примеры

В следующем примере показано, как использовать 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)

Инициализирует новый экземпляр класса 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

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

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

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

Свойства

AutoFlush

Получает или задает значение, определяющее, будет ли StreamWriter сбрасывать буфер в основной поток после каждого вызова Write(Char).

BaseStream

Получает основной поток, связанный с резервным хранилищем.

Encoding

Получает кодировку Encoding, в которой осуществляется запись выходных данных.

FormatProvider

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

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

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

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

Методы

Close()

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

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)

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

(Унаследовано от TextWriter)
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)

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

(Унаследовано от TextWriter)
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)

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

(Унаследовано от TextWriter)
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)

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

(Унаследовано от TextWriter)
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)

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

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

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