StreamWriter 构造函数

定义

初始化 StreamWriter 类的新实例。

重载

StreamWriter(Stream)

使用 UTF-8 编码及默认的缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

StreamWriter(String)

用默认编码和缓冲区大小,为指定的文件初始化 StreamWriter 类的一个新实例。

StreamWriter(Stream, Encoding)

使用指定的编码及默认的缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

StreamWriter(String, Boolean)

用默认编码和缓冲区大小,为指定的文件初始化 StreamWriter 类的一个新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

StreamWriter(String, FileStreamOptions)

使用默认编码初始化指定文件类的新实例 StreamWriter ,并使用指定的 FileStreamOptions 对象进行配置。

StreamWriter(Stream, Encoding, Int32)

使用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

StreamWriter(String, Boolean, Encoding)

使用指定的编码和默认的缓冲区大小,为指定的文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

StreamWriter(String, Encoding, FileStreamOptions)

使用指定的编码初始化指定文件类的新实例 StreamWriter ,并使用指定的 FileStreamOptions 对象进行配置。

StreamWriter(Stream, Encoding, Int32, Boolean)

使用指定的编码和缓冲区大小,为指定的流初始化 StreamWriter 类的新实例,并可以选择保持流处于打开状态。

StreamWriter(String, Boolean, Encoding, Int32)

使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

StreamWriter(Stream)

使用 UTF-8 编码及默认的缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

public:
 StreamWriter(System::IO::Stream ^ stream);
public StreamWriter (System.IO.Stream stream);
new System.IO.StreamWriter : System.IO.Stream -> System.IO.StreamWriter
Public Sub New (stream As Stream)

参数

stream
Stream

要写入的流。

例外

stream 不可写。

streamnull

示例

下面的代码示例演示了此构造函数。

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";
            FileStream fs = null;
            try
            {
                fs = new FileStream(fileName, FileMode.CreateNew);
                using (StreamWriter writer = new StreamWriter(fs))
                {
                    writer.Write(textToAdd);
                }
            }
            finally
            {
                if (fs != null)
                    fs.Dispose();
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"
        Dim fs As FileStream = Nothing
        Try
            fs = New FileStream(fileName, FileMode.CreateNew)
            Using writer As StreamWriter = New StreamWriter(fs)
                writer.Write(textToAdd)
            End Using
        Finally
            If Not fs Is Nothing Then
                fs.Dispose()
            End If
        End Try
    End Sub

End Module

注解

此构造函数使用 UTF-8 编码创建一个 StreamWriter 没有Byte-Order Mark (BOM) ,因此其 GetPreamble 方法返回空字节数组。 此构造函数的默认 UTF-8 编码对无效字节引发异常。 此行为不同于属性中 Encoding.UTF8 编码对象提供的行为。 若要指定是否对无效字节引发异常,请使用接受编码对象的构造函数作为参数,例如 StreamWriter。 该 BaseStream 属性使用 stream 参数初始化。 流的位置不会重置。

调用时StreamWriter.Dispose,对StreamWriter所提供的Stream对象调用Dispose()对象。

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能不可解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(String)

用默认编码和缓冲区大小,为指定的文件初始化 StreamWriter 类的一个新实例。

public:
 StreamWriter(System::String ^ path);
public StreamWriter (string path);
new System.IO.StreamWriter : string -> System.IO.StreamWriter
Public Sub New (path As String)

参数

path
String

要写入的完整文件路径。 path 可以是一个文件名。

例外

访问被拒绝。

path 为空字符串 ("")。

  • 或 - path 包含系统设备的名称(com1、com2 等等)。

pathnull

指定的路径无效(例如,它位于未映射的驱动器上)。

指定的路径和/或文件名超过了系统定义的最大长度。

path 包含不正确或无效的文件名、目录名或卷标签的语法。

调用方没有所要求的权限。

示例

下面的代码示例演示了此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";

            using (StreamWriter writer = new StreamWriter(fileName))
            {
                writer.Write(textToAdd);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"

        Using writer As StreamWriter = New StreamWriter(fileName)
            writer.Write(textToAdd)
        End Using
    End Sub

End Module

注解

此构造函数使用 UTF-8 编码创建一个 StreamWriter 没有Byte-Order Mark (BOM) ,因此其 GetPreamble 方法返回空字节数组。 此构造函数的默认 UTF-8 编码对无效字节引发异常。 此行为不同于属性中 Encoding.UTF8 编码对象提供的行为。 若要指定 BOM 并确定是否对无效字节引发异常,请使用接受编码对象的构造函数作为参数,例如 StreamWriter(String, Boolean, Encoding)

参数 path 可以是文件名,包括通用命名约定上的文件 (UNC) 共享。 如果文件存在,则会覆盖该文件;否则,将创建一个新文件。

参数 path 不需要是存储在磁盘上的文件;它可以是支持使用流进行访问的系统的任何部分。

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能不可解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(Stream, Encoding)

使用指定的编码及默认的缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

public:
 StreamWriter(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding);
public StreamWriter (System.IO.Stream stream, System.Text.Encoding encoding);
new System.IO.StreamWriter : System.IO.Stream * System.Text.Encoding -> System.IO.StreamWriter
Public Sub New (stream As Stream, encoding As Encoding)

参数

stream
Stream

要写入的流。

encoding
Encoding

要使用的字符编码。

例外

streamencodingnull

stream 不可写。

示例

以下示例演示此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";
            FileStream fs = null;
            try
            {
               fs = new FileStream(fileName, FileMode.CreateNew);
               using (StreamWriter writer = new StreamWriter(fs, Encoding.Default))
                {
                    writer.Write(textToAdd);
                }
            }
            finally
            {
                if (fs != null)
                    fs.Dispose();
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"
        Dim fs As FileStream = Nothing
        Try
            fs = New FileStream(fileName, FileMode.CreateNew)
            Using writer As StreamWriter = New StreamWriter(fs, Encoding.Default)
                writer.Write(textToAdd)
            End Using
        Finally
            If Not fs Is Nothing Then
                fs.Dispose()
            End If
        End Try
    End Sub

End Module

注解

此构造函数使用编码参数初始化 Encoding 属性,并使用 BaseStream 流参数初始化属性。 流的位置不会重置。 有关附加信息,请参见 Encoding

调用时StreamWriter.Dispose,对StreamWriter所提供的Stream对象调用Dispose()对象。

注意

编译具有特定区域性设置的字符集并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(String, Boolean)

用默认编码和缓冲区大小,为指定的文件初始化 StreamWriter 类的一个新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

public:
 StreamWriter(System::String ^ path, bool append);
public StreamWriter (string path, bool append);
new System.IO.StreamWriter : string * bool -> System.IO.StreamWriter
Public Sub New (path As String, append As Boolean)

参数

path
String

要写入的完整文件路径。

append
Boolean

若要追加数据到该文件中,则为 true;若要覆盖该文件,则为 false。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。

例外

访问被拒绝。

path 为空。

  • 或 - path 包含系统设备的名称(com1、com2 等等)。

pathnull

指定的路径无效(例如,它位于未映射的驱动器上)。

path 包含不正确或无效的文件名、目录名或卷标签的语法。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

示例

下面的代码示例演示了此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";

            using (StreamWriter writer = new StreamWriter(fileName, true))
            {
                writer.Write(textToAdd);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"

        Using writer As StreamWriter = New StreamWriter(fileName, True)
            writer.Write(textToAdd)
        End Using
    End Sub

End Module

注解

此构造函数使用 UTF-8 编码创建一个 StreamWriter 没有Byte-Order Mark (BOM) ,因此其 GetPreamble 方法返回空字节数组。 此构造函数的默认 UTF-8 编码对无效字节引发异常。 此行为不同于属性中 Encoding.UTF8 编码对象提供的行为。 若要指定 BOM 并确定是否对无效字节引发异常,请使用接受编码对象的构造函数作为参数,例如 StreamWriter(String, Boolean, Encoding)

参数 path 可以是文件名,包括通用命名约定上的文件 (UNC) 共享。

参数 path 不需要是存储在磁盘上的文件;它可以是支持使用流进行访问的系统的任何部分。

注意

编译具有特定区域性设置的字符集并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(String, FileStreamOptions)

使用默认编码初始化指定文件类的新实例 StreamWriter ,并使用指定的 FileStreamOptions 对象进行配置。

public:
 StreamWriter(System::String ^ path, System::IO::FileStreamOptions ^ options);
public StreamWriter (string path, System.IO.FileStreamOptions options);
new System.IO.StreamWriter : string * System.IO.FileStreamOptions -> System.IO.StreamWriter
Public Sub New (path As String, options As FileStreamOptions)

参数

path
String

要写入的完整文件路径。

options
FileStreamOptions

一个对象,指定基础 FileStream的配置选项。

例外

optionsnull .

stream 不可写。

另请参阅

适用于

StreamWriter(Stream, Encoding, Int32)

使用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。

public:
 StreamWriter(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding, int bufferSize);
public StreamWriter (System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize);
new System.IO.StreamWriter : System.IO.Stream * System.Text.Encoding * int -> System.IO.StreamWriter
Public Sub New (stream As Stream, encoding As Encoding, bufferSize As Integer)

参数

stream
Stream

要写入的流。

encoding
Encoding

要使用的字符编码。

bufferSize
Int32

缓冲区大小(以字节为单位)。

例外

streamencodingnull

bufferSize 为负数。

stream 不可写。

示例

以下示例演示此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";
            FileStream fs = null;
            try
            {
                fs = new FileStream(fileName, FileMode.CreateNew);
                using (StreamWriter writer = new StreamWriter(fs, Encoding.UTF8, 512))
                {
                    writer.Write(textToAdd);
                }
            }
            finally
            {
                if (fs != null)
                    fs.Dispose();
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"
        Dim fs As FileStream = Nothing
        Try
            fs = New FileStream(fileName, FileMode.CreateNew)
            Using writer As StreamWriter = New StreamWriter(fs, Encoding.Default, 512)
                writer.Write(textToAdd)
            End Using
        Finally
            If Not fs Is Nothing Then
                fs.Dispose()
            End If
        End Try
    End Sub

End Module

注解

此构造函数使用参数初始化Encoding属性,并使用BaseStream参数初始化stream``encoding属性。 流的位置不会重置。 有关附加信息,请参见 Encoding

调用时,对StreamWriter所提供的Stream对象调用对象。StreamWriter.Dispose Dispose()

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(String, Boolean, Encoding)

使用指定的编码和默认的缓冲区大小,为指定的文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

public:
 StreamWriter(System::String ^ path, bool append, System::Text::Encoding ^ encoding);
public StreamWriter (string path, bool append, System.Text.Encoding encoding);
new System.IO.StreamWriter : string * bool * System.Text.Encoding -> System.IO.StreamWriter
Public Sub New (path As String, append As Boolean, encoding As Encoding)

参数

path
String

要写入的完整文件路径。

append
Boolean

若要追加数据到该文件中,则为 true;若要覆盖该文件,则为 false。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。

encoding
Encoding

要使用的字符编码。

例外

访问被拒绝。

path 为空。

  • 或 - path 包含系统设备的名称(com1、com2 等等)。

pathnull

指定的路径无效(例如,它位于未映射的驱动器上)。

path 包含不正确或无效的文件名、目录名或卷标签的语法。

指定的路径和/或文件名超过了系统定义的最大长度。

调用方没有所要求的权限。

示例

以下示例演示此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";

            using (StreamWriter writer = new StreamWriter(fileName, true, Encoding.UTF8))
            {
                writer.Write(textToAdd);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"

        Using writer As StreamWriter = New StreamWriter(fileName, True, Encoding.UTF8)
            writer.Write(textToAdd)
        End Using
    End Sub

End Module

注解

此构造函数使用编码参数初始化 Encoding 属性。 有关附加信息,请参见 Encoding

path 可以是文件名,包括通用命名约定上的文件, (UNC) 共享。

path 不需要是存储在磁盘上的文件;它可以是支持通过流进行访问的系统的任何部分。

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于

StreamWriter(String, Encoding, FileStreamOptions)

使用指定的编码初始化指定文件类的新实例 StreamWriter ,并使用指定的 FileStreamOptions 对象进行配置。

public:
 StreamWriter(System::String ^ path, System::Text::Encoding ^ encoding, System::IO::FileStreamOptions ^ options);
public StreamWriter (string path, System.Text.Encoding encoding, System.IO.FileStreamOptions options);
new System.IO.StreamWriter : string * System.Text.Encoding * System.IO.FileStreamOptions -> System.IO.StreamWriter
Public Sub New (path As String, encoding As Encoding, options As FileStreamOptions)

参数

path
String

要写入的完整文件路径。

encoding
Encoding

要使用的字符编码。

options
FileStreamOptions

一个对象,指定基础 FileStream的配置选项。

例外

optionsnull .

stream 不可写。

另请参阅

适用于

StreamWriter(Stream, Encoding, Int32, Boolean)

使用指定的编码和缓冲区大小,为指定的流初始化 StreamWriter 类的新实例,并可以选择保持流处于打开状态。

public:
 StreamWriter(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding, int bufferSize, bool leaveOpen);
public StreamWriter (System.IO.Stream stream, System.Text.Encoding encoding, int bufferSize, bool leaveOpen);
public StreamWriter (System.IO.Stream stream, System.Text.Encoding? encoding = default, int bufferSize = -1, bool leaveOpen = false);
new System.IO.StreamWriter : System.IO.Stream * System.Text.Encoding * int * bool -> System.IO.StreamWriter
Public Sub New (stream As Stream, encoding As Encoding, bufferSize As Integer, leaveOpen As Boolean)
Public Sub New (stream As Stream, Optional encoding As Encoding = Nothing, Optional bufferSize As Integer = -1, Optional leaveOpen As Boolean = false)

参数

stream
Stream

要写入的流。

encoding
Encoding

要使用的字符编码。

bufferSize
Int32

缓冲区大小(以字节为单位)。

leaveOpen
Boolean

如果在释放 StreamWriter 对象后保持流处于打开状态,则为 true;否则为 false

例外

streamencodingnull

bufferSize 为负数。

stream 不可写。

示例

以下示例演示此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";
            FileStream fs = null;
            try
            {
                fs = new FileStream(fileName, FileMode.CreateNew);
                using (StreamWriter writer = new StreamWriter(fs, Encoding.UTF8, 512, false))
                {
                    writer.Write(textToAdd);
                }
            }
            finally
            {
                if (fs != null)
                    fs.Dispose();
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"
        Dim fs As FileStream = Nothing
        Try
            fs = New FileStream(fileName, FileMode.CreateNew)
            Using writer As StreamWriter = New StreamWriter(fs, Encoding.Default, 512, False)
                writer.Write(textToAdd)
            End Using
        Finally
            If Not fs Is Nothing Then
                fs.Dispose()
            End If
        End Try
    End Sub

End Module

注解

除非您设置leaveOpen参数true,则StreamWriter对象调用Dispose()上提供Stream对象时StreamWriter.Dispose调用。

此构造函数使用encoding参数初始化Encoding属性,并使用参数初始化BaseStream属性stream。 流的位置不会重置。 有关详细信息,请参阅 Encoding 该属性。

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

适用于

StreamWriter(String, Boolean, Encoding, Int32)

使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。

public:
 StreamWriter(System::String ^ path, bool append, System::Text::Encoding ^ encoding, int bufferSize);
public StreamWriter (string path, bool append, System.Text.Encoding encoding, int bufferSize);
new System.IO.StreamWriter : string * bool * System.Text.Encoding * int -> System.IO.StreamWriter
Public Sub New (path As String, append As Boolean, encoding As Encoding, bufferSize As Integer)

参数

path
String

要写入的完整文件路径。

append
Boolean

若要追加数据到该文件中,则为 true;若要覆盖该文件,则为 false。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。

encoding
Encoding

要使用的字符编码。

bufferSize
Int32

缓冲区大小(以字节为单位)。

例外

path 为空字符串 ("")。

  • 或 - path 包含系统设备的名称(com1、com2 等等)。

pathencodingnull

bufferSize 为负数。

path 包含不正确或无效的文件名、目录名或卷标签的语法。

调用方没有所要求的权限。

访问被拒绝。

指定的路径无效(例如,它位于未映射的驱动器上)。

指定的路径和/或文件名超过了系统定义的最大长度。

示例

以下示例演示此构造函数。

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "test.txt";
            string textToAdd = "Example text in file";

            using (StreamWriter writer = new StreamWriter(fileName, true, Encoding.UTF8, 512))
            {
                writer.Write(textToAdd);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        Dim fileName As String = "test.txt"
        Dim textToAdd As String = "Example text in file"

        Using writer As StreamWriter = New StreamWriter(fileName, True, Encoding.UTF8, 512)
            writer.Write(textToAdd)
        End Using
    End Sub

End Module

注解

此构造函数使用编码参数初始化 Encoding 属性。 有关附加信息,请参见 Encoding

path 可以是文件名,包括通用命名约定上的文件, (UNC) 共享。

path 不需要是存储在磁盘上的文件;它可以是支持通过流进行访问的系统的任何部分。

注意

使用特定区域性设置编译一组字符并检索具有不同区域性设置的相同字符时,这些字符可能无法解释,并可能导致引发异常。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

另请参阅

适用于