基本介绍: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文件和目录。

命名空间System.IO的更多相关文章

  1. c# 命名空间之System.IO(继承关系)

    System.IO 命名空间包含允许:读写文件.数据流的类型以及提供基本文件和目录支持的类型. 在这个命名空间中主要的类有: 字节流:Stream.BufferedStream.MemoryStrea ...

  2. System.IO命名空间下常用的类

    System.IO System.IO.Directory 目录 System.IO.Path 文件路径(包含目录和文件名) System.IO.FileInfo 提供创建.复制.删除.移动和打开文件 ...

  3. System.IO之内存映射文件共享内存

    内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去,在此之后进程操作文件,就 像操作进程空间里的地址一样了,比如使用c语言的memcpy等内存操作的函数.这种方法能够很好的应用在需要频繁处理一个 ...

  4. 详解C#中System.IO.File类和System.IO.FileInfo类的用法

    System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法. (1) 文件打开 ...

  5. System.IO在不存在的路径下创建文件夹和文件的测试

    本文测试System.IO命名空间下的类,在不存在的路径下创建文件夹和文件的效果: 首先测试创建文件夹: System.IO.Directory.CreateDirectory(@"C:\A ...

  6. C# System.IO和对文件的读写操作

      System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...

  7. System.IO.Path文件路径类

    Path类的静态属性和方法,此类操作不影响物料文件. 属性 char a = System.IO.Path.VolumeSeparatorChar;//: char b = System.IO.Pat ...

  8. System.IO 二

    接着上篇的来  System.IO FileSystemWatcher    指向这个签名的方法   可以监听目录发生了什么事件 例如: static void Main(string[] args) ...

  9. C# System.IO 文件流输入输出

    一.读写文本文件 可以用fileStream来读写文本文件,但是FileStream是通过字节形式来读写数据的,要把字节数据转换为文本,要自己处理编码转换. 对于文本文件的读写,通常用 StreamR ...

随机推荐

  1. python 异常和弹出框

    import tkinter.messagebox try: fileContent = open("abnormal.txt") fileContent.close() prin ...

  2. Ngrinder 源码之Maven 项目

    Ngrinder支持Maven结构的测试脚本.使用ScriptHandlerFactory来个脚本选择处理器handler,目前有JythonScriptHandler, GroovyScriptHa ...

  3. JScript 程序流程控制

    Jscript 脚本中的语句一般是按照写的顺序来运行的.这种运行称为顺序运行,是程序流的默认方向. 与顺序运行不同,另一种运行将程序流转换到脚本的另外的部分.也就是,不按顺序运行下一条语句,而是运行另 ...

  4. DatabaseLibrary数据库测试

    DatabaseLibrary常用关键字 关  键  字 描   述 Connect To Database 连接数据库 Connect To Database Using Custom Params ...

  5. k8s部署01-----what is k8s?

    简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubernetes是一个开源的,容器集群管理系统,K ...

  6. LC 959. Regions Cut By Slashes

    In a N x N grid composed of 1 x 1 squares, each 1 x 1 square consists of a /, \, or blank space.  Th ...

  7. 浏览器端-W3School-HTML:HTML DOM Video 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Video 对象 1.返回顶部 1. HTML DOM Video 对象 Video 对象 Video 对象是 HTML5 中的 ...

  8. ORACLE PSU SPU (2015-11-04)

    Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (文档 ID 145 ...

  9. System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer的差别和分别什么时候用

    System.Windows.Forms.Timer.System.Timers.Timer.System.Threading.Timer的 区别和用法http://space.itpub.net/1 ...

  10. C++ 学习笔记整理

    目录 STL 容器 set的用法简介 unordered_set 变量类型转换 stringstream 类型转换 数据结构 哈希表 日常小技巧 C++输入输出流加速器,关闭同步流,ios::sync ...