zoukankan      html  css  js  c++  java
  • 命名空间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文件和目录。

    要么生,要么死
  • 相关阅读:
    [note]抽象类和接口的相同点和不同点
    百度竞价门再跟踪:违规医疗广告数量仍大幅增加
    获取拼音的第一个字母的方法
    一个分页存储过程
    正则表达式(Regular Expressions)
    四个故事
    Oracle 常用
    我很喜欢的一个[帖子]:从现在起,我开始还债。
    DataGrid 中的 HyperLinkColumn (可以携带多个Get参数)
    100 statements in English.
  • 原文地址:https://www.cnblogs.com/llljpf/p/6617976.html
Copyright © 2011-2022 走看看