Поделиться через


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(String, ReadOnlySpan<Object>)

Записывает форматированную строку в поток, используя ту же семантику, что и Format(String, ReadOnlySpan<Object>).

Write(String, ReadOnlySpan<Object>)

Записывает форматированную строку в текстовый поток, используя ту же семантику, что и Format(String, ReadOnlySpan<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(String, ReadOnlySpan<Object>)

Записывает форматированную строку и новую строку в поток, используя ту же семантику, что и Format(String, ReadOnlySpan<Object>).

WriteLine(String, ReadOnlySpan<Object>)

Записывает форматированную строку и новую строку в текстовый поток, используя ту же семантику, что и Format(String, ReadOnlySpan<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)

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

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

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