命名空间System.IO

基本介绍:System.IO 命名空间提供读写文件和数据流的类型、基本文件和目录支持的类型。

原文:http://blog.sina.com.cn/s/blog_48a45b950100erhz.html

         http://edu.cnzz.cn/201510/977513da.shtml

主要的类

  • 字节流:Stream、BufferedStream、MemoryStream、UnmanagedMemoryStream、FileStream
  • 二进制IO流:BinaryReader和BinaryWriter
  • 字符IO流:TextReader、TextWriter、StreamReader、StreamWriter、StringReader、StringWriter
  • 文件系统操作:File、Path、Directory、FileSystemInfo、FileInfo、DirectoryInfo、DriveInfo
  • IO枚举:FileAccess、FileAttributes、FilenameOptions、FileShare、 FileMode、SearchOption、SeekOrigin、DirveType
  • IO异常:IOException、FileLoadException、DriveNotFoundException、FileNotFoundException、 DirectoryNotFoundException、PathTooLongException、EndOfStreamException

C#文件的输入输出

       文件 是存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 

从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流输入流用于从文件读取数据(读操作),输出流用于向文件写入数据(写操作)。

C#IO类

    System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。下表列出了一些 System.IO 命名空间中常用的非抽象类:

    

字节流

      

       Stream :是所有流的抽象基类。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。流涉及三个基本操作:(1)可以读取流(2)可以写入流(3)可以支持查找。流可能只支持这些功能中的一部分,通过使用 CanReadCanWrite 和 CanSeek 属性,应用程序可以查询流的功能。在实现Stream 的派生类时,必须提供Read和Write方法的实现。异步方法 BeginRead 、EndRead 、BeginWrite 和 EndWrite 通过同步方法 Read 和 Write 实现。不要重写Close方法,而应将所有清理逻辑放入Dispose方法中。

       FileStream :代表了能够访问一个文件 的IO流。FileStream 对输入输出进行缓冲,从而提高性能,因此不需要像Java那样利用流的包装来达到缓冲的目的。FileStream 对象支持使用 Seek 方法对文件进行随机访问。文件使用完之后必须确保调用FileStream的Dispose方法,特别是在磁盘空间有限的环境中。
       BufferedStream :给另一流上的读写操作添加一个缓冲层。它是密封类,无法继承。缓冲区可提高读取和写入性能。使用缓冲区可进行读取或写入,但不能同时进行这两种操作。
       MemoryStream :创建支持存储区为内存的流。它创建的流以内存而不是磁盘或网络连接作为支持存储区。MemoryStream 封装以无符号字节数组形式存储的数据,该数组在创建 MemoryStream 对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。
       UnmanagedMemoryStream :提供从托管代码访问非托管内存块的能力。

二进制IO流

      

       BinaryReader :用特定的编码从一个输入流中读取二进制数据,默认是UTF-8编码。
       BinaryWriter :用特定编码以二进制格式向输出流中写入简单数据类型,默认是UTF-8编码。

字符IO流

      

        TextReader :是读取字符数据的抽象基类,是StreamReader和StringReader的基类。
        TextWriter :是写入字符数据的抽象基类,是StreamWriter和StringWriter的基类。

文件系统操作

       

        DirectoryInfo、FileInfo:都继承于抽象基类FileSystemInfo,它们都是密封类,无法继承。
        DriveInfo:也是密封类,无法继承,但是它不是继承于FileSystemInfo,而是object。

 

       File、Directory、Path:它们都是静态的工具类,用于操作文件、目录和路径。

IO枚举

    

IO异常     

     

 

 

FileStream 类

    System.IO 命名空间中的 FileStream 类有助于文件的读写与关闭。该类派生自抽象类 Stream。

    您需要创建一个 FileStream 对象来创建一个新的文件,或打开一个已有的文件。创建 FileStream 对象的语法如下:

 FileStream <object_name> = new FileStream( <file_name>,
 <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
例如,创建一个 FileStream 对象 F 来读取名为 sample.txt 的文件:
 FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);



 实例:下面的程序演示了 FileStream 类的用法:

 

C# 高级文件操作

   上面的实例演示了 C# 中简单的文件操作。但是,要充分利用 C# System.IO 类的强大功能,您需要知道这些类常用的属性和方法。

   在下面的章节中,我们将讨论这些类和它们执行的操作。请单击链接详细了解各个部分的知识:

   文本文件的读写:它涉及到文本文件的读写。StreamReader和StreamWriter类有助于完成文本文件的读写。

  二进制文件的读写:它涉及到二进制文件的读写。BinaryReader和BinaryWrite类有助于完成二进制文件的读写。

  Windows文件系统的操作:它让C#程序员能够浏览并定位windows文件和目录。

 

posted @ 2017-03-25 18:35  雷雨天的雷胖子  阅读(597)  评论(0编辑  收藏  举报