文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>IO 流操作(条理性的规划写博)

IO 流操作(条理性的规划写博)

时间:2011-03-24  来源:DCBI

  1. 文件和流的区别:

  2. Stream类解析

   文件和流的差异。文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,关于文件,人们常会想到目录路径、磁盘存储、文件和目录名等方面。相反,流提供一种向后备存储写入字节和从后备存储读取字节的方式,后备存储可以为多种存储媒介之一。正如除磁盘外存在多种后备存储一样,除文件流之外也存在多种流。例如,还存在网络流、内存流和磁带流等。

 

所有表示流的类都是从 Stream类继承的。Stream类及其派生类提供数据源和储存库的一般视图,使程序员不必了解操作系统和基础设备的具体细节。

流涉及三个基本操作:

  • 可以从流读取。读取是从流到数据结构(如字节数组)的数据传输。

  • 可以向流写入。写入是从数据源到流的数据传输。

  • 流可以支持查找。查找是对流内的当前位置进行的查询和修改。

 

涉及到的具体类:

  用于文件IO的类:

Directory提供创建、移动和枚举目录和子目录的静态方法。DirectoryInfo类提供实例方法。

DirectoryInfo提供创建、移动和枚举目录和子目录的实例方法。Directory类提供静态方法。

DriveInfo提供访问有关驱动器的信息的实例方法。

File提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream。FileInfo类提供实例方法。

FileInfo提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建 FileStream。File类提供静态方法。

FileStream支持通过其 Seek方法随机访问文件。默认情况下,FileStream以同步方式打开文件,但它也支持异步操作。File包含静态方法,而 FileInfo包含实例方法。

FileSystemInfo是 FileInfo和 DirectoryInfo的抽象基类。

Path提供以跨平台的方式处理目录字符串的方法和属性。

DeflateStream提供使用 Deflate 算法压缩和解压缩流的方法和属性。

GZipStream提供压缩和解压缩流的方法和属性。默认情况下,此类使用与 DeflateStream类相同的算法,但可以扩展到使用其他压缩格式。

SerialPort提供控制串行端口文件资源的方法和属性。

File、FileInfo、DriveInfo、Path、Directory和 DirectoryInfo是密封(在 Microsoft Visual Basic 中为 NotInheritable)类。可以创建这些类的新实例,但它们不能有派生类。

用于从流读取和写入流的类

BinaryReaderBinaryWriter在 Streams中读取和写入编码的字符串和基元数据类型。

StreamReader通过使用 Encoding进行字符和字节的转换,从 Streams中读取字符。StreamReader具有一个构造函数,该构造函数根据是否存在专用于 Encoding的 preamble(例如一个字节顺序标记)来尝试确定给定 Stream的正确 Encoding是什么。

StreamWriter通过使用 Encoding将字符转换为字节,向 Streams写入字符。

StringReader从 Strings中读取字符。StringReader允许您用相同的 API 来处理 Strings,因此您的输出可以是 String或以任何编码表示的 Stream。

StringWriter向 Strings写入字符。StringWriter允许您用相同的 API 来处理 Strings,因此您的输出可以是 String或以任何编码表示的 Stream。

TextReader是 StreamReader和 StringReader的抽象基类。抽象 Stream类的实现用于字节输入和输出,而 TextReader的实现用于 Unicode 字符输出。

TextWriter是 StreamWriter和 StringWriter的抽象基类。抽象 Stream类的实现用于字节输入和输出,而 TextWriter的实现用于 Unicode 字符输出。


通用 I/O 流类

BufferedStream是向另一个 Stream(例如 NetworkStream)添加缓冲的 Stream。(FileStream内部已具有缓冲,MemoryStream不需要缓冲。)BufferedStream可以围绕某些类型的流来构成以提高读写性能。缓冲区是内存中���字节块,用于缓存数据,从而减少对操作系统的调用次数。

CryptoStream将数据流链接到加密转换。虽然 CryptoStream是从 Stream派生的,但它不属于 System.IO命名空间,而是在 System.Security.Cryptography命名空间中。

MemoryStream是一个非缓冲的流,可以在内存中直接访问它的封装数据。该流没有后备存储,可用作临时缓冲区。

NetworkStream表示网络连接上的 Stream。虽然 NetworkStream是从 Stream派生的,但它不属于 System.IO命名空间,而是在 System.Net.Sockets命名空间中

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载