System.IO.StreamWriter.cs

ylbtech-System.IO.StreamWriter.cs
1.返回顶部
1、
#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);
    }
}
2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
 
 
6.返回顶部
 
warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

猜你喜欢

转载自www.cnblogs.com/storebook/p/12578032.html