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


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, 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

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

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

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

Свойства

Имя Описание
AutoFlush

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

BaseStream

Возвращает базовый поток, который взаимодействует с резервным хранилищем.

Encoding

Возвращает значение, Encoding в котором записываются выходные данные.

FormatProvider

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

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

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

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

Методы

Имя Описание
Close()

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

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)

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

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

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

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

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

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

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

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

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

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

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