zoukankan      html  css  js  c++  java
  • c# 命名空间之System.IO(继承关系)

    System.IO 命名空间包含允许:读写文件、数据流的类型以及提供基本文件和目录支持的类型。

    在这个命名空间中主要的类有:

    • 字节流: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、FileOptions、FileShare、FileMode、SearchOption、SeekOrigin、DriveType
    • IO异常:IOException、FileLoadException、DriveNotFoundException、FileNotFoundException、DirectoryNotFoundException、PathTooLongException、EndOfStreamException

    字节流:

    Stream:是所有流的抽象基类。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。
    流涉及三个基本操作:(1)可以读取流(2)可以写入流(3)可以支持查找。流可能只支持这些功能中的一部分,通过使用 CanRead、CanWrite 和 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异常:
  • 相关阅读:
    Leetcode 3. Longest Substring Without Repeating Characters/ 4. Median of Two Sorted Arrays[二分]
    最大流算法思想和理论的简单理解
    数值线性代数实验-共轭梯度法
    运筹学上机实验
    HDU 1542 Atlantis[扫描线]
    数值实验-高斯消元LU分解
    PAT 1143-Lowest Common Ancestor (30) 二叉树还原
    L2-006. 树的遍历
    hdu-3038 How Many Answers Are Wrong[并查集]
    poj-3253 Fence Repair[霍夫曼树]
  • 原文地址:https://www.cnblogs.com/valor-xh/p/6049697.html
Copyright © 2011-2022 走看看