C# I/O操作 笔记
来源:互联网 发布:js程序脚本 编辑:程序博客网 时间:2024/05/20 04:12
1:基本文件I/O
1.1:用于文件 I/O 的类
1.2:用于从流读取和写入流的类
1.3:通用 I/O 流类
2:通用I/O任务
以下的区别有助于澄清文件和流的差异。文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,关于文件,人们常会想到目录路径、磁盘存储、文件和目录名等方面。相反,流提供一种向后备存储写入字节和从后备存储读取字节的方式,后备存储可以为多种存储媒介之一。正如除磁盘外存在多种后备存储一样,除文件流之外也存在多种流。例如,还存在网络流、内存流和磁带流等。
1:基本文件I/O
抽象基类 Stream 支持读取和写入字节。Stream 集成了异步支持。其默认实现根据其相应的异步方法来定义同步读取和写入,反之亦然。
所有表示流的类都是从 Stream 类继承的。Stream 类及其派生类提供数据源和储存库的一般视图,使程序员不必了解操作系统和基础设备的具体细节。
流涉及三个基本操作:
可以从流读取。读取是从流到数据结构(如字节数组)的数据传输。
可以向流写入。写入是从数据源到流的数据传输。
流可以支持查找。查找是对流内的当前位置进行的查询和修改。
根据基础数据源或储存库,流可能只支持这些功能中的一部分。例如,NetworkStreams 不支持查找。Stream 及其派生类的 CanRead、CanWrite 和 CanSeek 属性决定了不同流所支持的操作。
1.1:用于文件 I/O 的类
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)类。可以创建这些类的新实例,但它们不能有派生类。
1.2:用于从流读取和写入流的类
BinaryReader 和 BinaryWriter 在 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 字符输出。
1.3:通用 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 命名空间中。
2:通用I/O任务
System.IO 命名空间提供若干个类,通过这些类可以对文件、目录和流执行各种操作(如读取和写入)。
地址:http://msdn.microsoft.com/zh-cn/library/ms404278.aspx
- C# I/O操作 笔记
- C#笔记28:I/O操作
- C# I/O操作
- c# I/O相关操作
- C#中I/O操作
- C#对象的I/O操作
- Hadoop I/O操作(笔记)
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总(1)
- C# 路径/文件/目录/I/O常见操作汇总收藏
- C#路径/文件/目录/I/O常见操作汇总
- C#路径/文件/目录/I/O常见操作汇总
- ARCGIS for android
- 一道面试题引发的对android中context的研究(二)
- 在Fragment中获取context
- #Objective-C 经典字典数组排序 - 省市区
- stdio.h(常用输入、输出函数)
- C# I/O操作 笔记
- I2C器件的从设备地址的设置
- ubuntu 14.04 搜狗输入法安装
- java知识点之增强for循环
- log4J 日志信息log4j.xml配置说明
- 繁琐的MONGODB --是否要放弃MONGODB是个值得深思的问题
- 《iOS Human Interface Guidelines》——App Extensions
- Eclipse 中包结构展开有两种方式
- 2015前端生态发展回顾