#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\mscorlib.dll
#endregion
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
namespace System.IO
{
//
// 摘要:
// 实现 System.IO.TextWriter 用于将字符写入到流中特定的编码。 若要浏览此类型的.NET Framework 源代码,请参阅 Reference
// Source。
[ComVisible(true)]
public class StreamWriter : TextWriter
{
//
// 摘要:
// 提供 StreamWriter,它不带任何可写入但无法从中读取的后备存储。
public static readonly StreamWriter Null;
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 类为使用 utf-8 编码及默认的缓冲区大小指定的流。
//
// 参数:
// stream:
// 要写入的流。
//
// 异常:
// T:System.ArgumentException:
// stream 不是可写的。
//
// T:System.ArgumentNullException:
// stream 为 null。
public StreamWriter(Stream stream);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 类为指定的文件使用默认的编码和缓冲区大小。
//
// 参数:
// path:
// 要写入的完整文件路径。 path 可以是文件名称。
//
// 异常:
// T:System.UnauthorizedAccessException:
// 拒绝访问。
//
// T:System.ArgumentException:
// path 为空字符串 ("")。 - 或 - path 包含 (com1 和 com2,等) 的系统设备的名称。
//
// T:System.ArgumentNullException:
// path 为 null。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效(例如,它位于未映射的驱动器上)。
//
// T:System.IO.PathTooLongException:
// 指定的路径和/或文件名超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径长度不得超过 248 个字符,文件名长度不得超过 260 个字符。
//
// T:System.IO.IOException:
// path 包含文件的名称、 目录名称或卷标签语法不正确或无效的语法。
//
// T:System.Security.SecurityException:
// 调用方没有所要求的权限。
public StreamWriter(string path);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 为通过使用指定的编码及默认的缓冲区大小指定的流的类。
//
// 参数:
// stream:
// 要写入的流。
//
// encoding:
// 要使用的字符编码。
//
// 异常:
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
//
// T:System.ArgumentException:
// stream 不是可写的。
public StreamWriter(Stream stream, Encoding encoding);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 类为指定的文件使用默认的编码和缓冲区大小。 如果该文件存在,则可以将其覆盖或向其追加。 如果该文件不存在,此构造函数将创建一个新文件。
//
// 参数:
// path:
// 要写入的完整文件路径。
//
// append:
// true 若要将数据追加到该文件; false 覆盖该文件。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。
//
// 异常:
// T:System.UnauthorizedAccessException:
// 拒绝访问。
//
// T:System.ArgumentException:
// path 为空。 - 或 - path 包含 (com1 和 com2,等) 的系统设备的名称。
//
// T:System.ArgumentNullException:
// path 为 null。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效(例如,它位于未映射的驱动器上)。
//
// T:System.IO.IOException:
// path 包含文件的名称、 目录名称或卷标签语法不正确或无效的语法。
//
// T:System.IO.PathTooLongException:
// 指定的路径和/或文件名超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径长度不得超过 248 个字符,文件名长度不得超过 260 个字符。
//
// T:System.Security.SecurityException:
// 调用方没有所要求的权限。
public StreamWriter(string path, bool append);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 为指定的流类通过使用指定的编码和缓冲区大小。
//
// 参数:
// stream:
// 要写入的流。
//
// encoding:
// 要使用的字符编码。
//
// bufferSize:
// 缓冲区大小(以字节为单位)。
//
// 异常:
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
//
// T:System.ArgumentOutOfRangeException:
// bufferSize 为负数。
//
// T:System.ArgumentException:
// stream 不是可写的。
public StreamWriter(Stream stream, Encoding encoding, int bufferSize);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 类通过使用指定的编码和默认的缓冲区大小指定的文件。 如果该文件存在,则可以将其覆盖或向其追加。
// 如果该文件不存在,此构造函数将创建一个新文件。
//
// 参数:
// path:
// 要写入的完整文件路径。
//
// append:
// true 若要将数据追加到该文件; false 覆盖该文件。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。
//
// encoding:
// 要使用的字符编码。
//
// 异常:
// T:System.UnauthorizedAccessException:
// 拒绝访问。
//
// T:System.ArgumentException:
// path 为空。 - 或 - path 包含 (com1 和 com2,等) 的系统设备的名称。
//
// T:System.ArgumentNullException:
// path 为 null。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效(例如,它位于未映射的驱动器上)。
//
// T:System.IO.IOException:
// path 包含文件的名称、 目录名称或卷标签语法不正确或无效的语法。
//
// T:System.IO.PathTooLongException:
// 指定的路径和/或文件名超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径长度不得超过 248 个字符,文件名长度不得超过 260 个字符。
//
// T:System.Security.SecurityException:
// 调用方没有所要求的权限。
public StreamWriter(string path, bool append, Encoding encoding);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 为通过使用为指定的编码和缓冲区大小,并可以选择保持流处于打开指定的流的类。
//
// 参数:
// stream:
// 要写入的流。
//
// encoding:
// 要使用的字符编码。
//
// bufferSize:
// 缓冲区大小(以字节为单位)。
//
// leaveOpen:
// 如果在释放 System.IO.StreamWriter 对象后保持流处于打开状态,则为 true;否则为 false。
//
// 异常:
// T:System.ArgumentNullException:
// stream 或 encoding 为 null。
//
// T:System.ArgumentOutOfRangeException:
// bufferSize 为负数。
//
// T:System.ArgumentException:
// stream 不是可写的。
public StreamWriter(Stream stream, Encoding encoding, int bufferSize, bool leaveOpen);
//
// 摘要:
// 新实例初始化 System.IO.StreamWriter 类上使用指定的编码为指定路径的指定文件和缓冲区大小。 如果该文件存在,则可以将其覆盖或向其追加。
// 如果该文件不存在,此构造函数将创建一个新文件。
//
// 参数:
// path:
// 要写入的完整文件路径。
//
// append:
// true 若要将数据追加到该文件; false 覆盖该文件。 如果指定的文件不存在,该参数无效,且构造函数将创建一个新文件。
//
// encoding:
// 要使用的字符编码。
//
// bufferSize:
// 缓冲区大小(以字节为单位)。
//
// 异常:
// T:System.ArgumentException:
// path 为空字符串 ("")。 - 或 - path 包含 (com1 和 com2,等) 的系统设备的名称。
//
// T:System.ArgumentNullException:
// path 或 encoding 为 null。
//
// T:System.ArgumentOutOfRangeException:
// bufferSize 为负数。
//
// T:System.IO.IOException:
// path 包含文件的名称、 目录名称或卷标签语法不正确或无效的语法。
//
// T:System.Security.SecurityException:
// 调用方没有所要求的权限。
//
// T:System.UnauthorizedAccessException:
// 拒绝访问。
//
// T:System.IO.DirectoryNotFoundException:
// 指定的路径无效(例如,它位于未映射的驱动器上)。
//
// T:System.IO.PathTooLongException:
// 指定的路径和/或文件名超过了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径长度不得超过 248 个字符,文件名长度不得超过 260 个字符。
[SecuritySafeCritical]
public StreamWriter(string path, bool append, Encoding encoding, int bufferSize);
//
// 摘要:
// 获取或设置一个值,该值指示是否 System.IO.StreamWriter 将其缓冲区刷新到基础流在每次调用后 System.IO.StreamWriter.Write(System.Char)。
//
// 返回结果:
// true 若要强制 System.IO.StreamWriter 刷新其缓冲区中; 否则为 false。
public virtual bool AutoFlush { get; set; }
//
// 摘要:
// 获取同后备存储连接的基础流。
//
// 返回结果:
// 流这 StreamWriter 正在写入。
public virtual Stream BaseStream { get; }
//
// 摘要:
// 获取在其中写入输出的 System.Text.Encoding。
//
// 返回结果:
// System.Text.Encoding 在当前实例的构造函数中指定或 System.Text.UTF8Encoding 如果未指定的编码。
public override Encoding Encoding { get; }
//
// 摘要:
// 关闭当前 StreamWriter 对象和基础流。
//
// 异常:
// T:System.Text.EncoderFallbackException:
// 当前的编码不支持显示 Unicode 代理项对的一半。
public override void Close();
//
// 摘要:
// 清理当前写入器的所有缓冲区,并使所有缓冲数据写入基础流。
//
// 异常:
// T:System.ObjectDisposedException:
// 关闭当前编写器。
//
// T:System.IO.IOException:
// 发生了 I/O 错误。
//
// T:System.Text.EncoderFallbackException:
// 当前的编码不支持显示 Unicode 代理项对的一半。
public override void Flush();
//
// 摘要:
// 异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中。
//
// 返回结果:
// 表示异步刷新操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放流。
[ComVisible(false)]
public override Task FlushAsync();
//
// 摘要:
// 将字符写入流。
//
// 参数:
// value:
// 要写入流中的字符。
//
// 异常:
// T:System.IO.IOException:
// 出现 I/O 错误。
//
// T:System.ObjectDisposedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,并且关闭当前编写器。
//
// T:System.NotSupportedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,且无法写入基础的固定的大小流写入缓冲区的内容,因为
// System.IO.StreamWriter 位于流结尾。
public override void Write(char value);
//
// 摘要:
// 将字符的子数组写入流。
//
// 参数:
// buffer:
// 包含要写入的数据的字符数组。
//
// index:
// 在开始读取数据时缓冲区中的字符位置。
//
// count:
// 要写入的最大字符数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentException:
// 缓冲区长度减去 index 小于 count。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负。
//
// T:System.IO.IOException:
// 出现 I/O 错误。
//
// T:System.ObjectDisposedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,并且关闭当前编写器。
//
// T:System.NotSupportedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,且无法写入基础的固定的大小流写入缓冲区的内容,因为
// System.IO.StreamWriter 位于流结尾。
public override void Write(char[] buffer, int index, int count);
//
// 摘要:
// 将字符串写入流。
//
// 参数:
// value:
// 要写入流的字符串。 如果 value 是 null,则不写入。
//
// 异常:
// T:System.ObjectDisposedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,并且关闭当前编写器。
//
// T:System.NotSupportedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,且无法写入基础的固定的大小流写入缓冲区的内容,因为
// System.IO.StreamWriter 位于流结尾。
//
// T:System.IO.IOException:
// 出现 I/O 错误。
public override void Write(string value);
//
// 摘要:
// 将字符数组写入流。
//
// 参数:
// buffer:
// 包含要写入的数据的字符数组。 如果 buffer 为 null,则不写入任何内容。
//
// 异常:
// T:System.IO.IOException:
// 出现 I/O 错误。
//
// T:System.ObjectDisposedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,并且关闭当前编写器。
//
// T:System.NotSupportedException:
// System.IO.StreamWriter.AutoFlush 是,则返回 true 或 System.IO.StreamWriter 缓冲区已满,且无法写入基础的固定的大小流写入缓冲区的内容,因为
// System.IO.StreamWriter 位于流结尾。
public override void Write(char[] buffer);
//
// 摘要:
// 将字符异步写入该流。
//
// 参数:
// value:
// 要写入流中的字符。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteAsync(char value);
//
// 摘要:
// 将字符串异步写入该流。
//
// 参数:
// value:
// 要写入流的字符串。 如果 value 为 null,则不写入任何内容。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteAsync(string value);
//
// 摘要:
// 将字符的子数组异步写入该流。
//
// 参数:
// buffer:
// 包含要写入的数据的字符数组。
//
// index:
// 在开始读取数据时缓冲区中的字符位置。
//
// count:
// 要写入的最大字符数。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentException:
// index 加 count 大于缓冲区长度。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负。
//
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteAsync(char[] buffer, int index, int count);
//
// 摘要:
// 将行终止符异步写入该流。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteLineAsync();
//
// 摘要:
// 将后跟行终止符的字符异步写入该流。
//
// 参数:
// value:
// 要写入流中的字符。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteLineAsync(char value);
//
// 摘要:
// 将后跟行终止符的字符串异步写入该流。
//
// 参数:
// value:
// 要写入的字符串。 如果值为 null,则只写入行终止符。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteLineAsync(string value);
//
// 摘要:
// 将后跟行终止符的字符的子数组异步写入该流。
//
// 参数:
// buffer:
// 要从中写出数据的字符数组。
//
// index:
// 在开始读取数据时缓冲区中的字符位置。
//
// count:
// 要写入的最大字符数。
//
// 返回结果:
// 表示异步写入操作的任务。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentException:
// index 加 count 大于缓冲区长度。
//
// T:System.ArgumentOutOfRangeException:
// index 或 count 为负。
//
// T:System.ObjectDisposedException:
// 已释放的流编写器。
//
// T:System.InvalidOperationException:
// 当前正在使用以前的写操作的流编写器。
[ComVisible(false)]
public override Task WriteLineAsync(char[] buffer, int index, int count);
//
// 摘要:
// 释放由 System.IO.StreamWriter 占用的非托管资源,还可以另外再释放托管资源。
//
// 参数:
// disposing:
// 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。
//
// 异常:
// T:System.Text.EncoderFallbackException:
// 当前的编码不支持显示 Unicode 代理项对的一半。
protected override void Dispose(bool disposing);
}
}