StreamWriter 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
实现一个 TextWriter,用于以特定编码将字符写入流。
public ref class StreamWriter : System::IO::TextWriterpublic 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.TextWritertype StreamWriter = class
    inherit TextWriter[<System.Serializable>]
type StreamWriter = class
    inherit TextWriter[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamWriter = class
    inherit TextWriterPublic 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 接口。 使用完该类型后,应直接或间接释放它。 若要直接释放类型,请在 try/catch 块中调用其 Dispose 方法。 若要间接处理它,请使用语言构造(如 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。
有关常见 I/O 任务的列表,请参阅 常见 I/O 任务。
构造函数
| StreamWriter(Stream) | 使用 UTF-8 编码和默认缓冲区大小初始化指定流的 StreamWriter 类的新实例。 | 
| 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 | 获取或设置一个值,该值指示每次调用 Write(Char)后,StreamWriter 是否将其缓冲区刷新到基础流。 | 
| BaseStream | 获取与后盾存储接口的基础流。 | 
| Encoding | 获取在其中写入输出的 Encoding。 | 
| FormatProvider | 获取一个对象,该对象控制格式设置。(继承自 TextWriter) | 
| NewLine | 获取或设置当前  | 
方法
显式接口实现
| IDisposable.Dispose() | 有关此成员的说明,请参阅 Dispose()。(继承自 TextWriter) | 
扩展方法
| ConfigureAwait(IAsyncDisposable, Boolean) | 配置如何执行从异步可释放项返回的任务的 await。 |