第5章 输入与输出
5.1概述
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。C#中文件处理技术称为I/O技术,即输入与输出技术,或称为流处理技术或文件流处理技术。
5.1.1 文件与流
文件和流既有区别又有联系。
文件是存储在存储介质上的数据集,是静态的,具有名称和相应路径。当打开一个文件并对其进行读写时,该文件就成为流。
文件是指在各种存储介质上永久保存数据的有序集合,并与一个具体的名称对应,它是进行文件读写操作的基本对象。从严格意义上讲,文件指的是放在磁盘上的静态信息,这种信息不是连续的,是随机的。
流是文字序列的抽象概念,流提供一种向后续存储器写入字节或从后续存储器读取字节的方法。流一般指的是连续的字节信息。例如,要对一个文件进行处理,这个文件就会变成连续的字节信息加载到内存中,也就是说文件在处理时就必须变成流。流强调的是动态的连续信息,是由文件转换成的。流和文件指的都是一件事物,但是状态不一样。
5.1.2 System.IO命名空间
System.IO命名空间包含允许 读写文件和数据流 的类型以及提供 基本文件和目录 支持的类型,因此在使用这些类时需要引入System.IO命名空间。
表1 System.IO命名空间中常用类
类名 |
功能和用途 |
Directory、DirectoryInfo |
创建、删除并移动目录,通过属性获取特定目录的相关信息 |
File、FileInfo |
创建、删除并移动文件,通过属性获取特定文件的相关信息 |
StreamReader、StreamWriter |
读写文本数据信息 |
BinaryReader、BinaryWriter |
读写二进制数据 |
System.IO命名空间中的常用类大致分为 操作目录的类、操作文件的类、文件读写类等。
其中,Directory类和DirectoryInfo类属于操作目录的类;File类和FileInfo类属于操作文件的类;treamReader类和StreamWriter类属于文本文件读写的类;BinaryReader类和BinaryWriter类属于二进制文件读写的类。
5.2 目录操作
对文件目录进行操作,如创建目录、删除目录等,为此C#提供了Directory类和DirectoryInfo类。
5.2.1 Directory类
Directory类是静态类,提供了许多静态方法用于对目录进行操作,如创建、删除和移动目录等。
表1 Directory类的一些常用方法
方法 |
说明 |
CreateDirectory() |
创建指定路径的目录 |
Exists() |
判断目录是否存在 |
GetDirectoryRoot() |
获取指定目录的根目录 |
GetDirectories() |
获取当前目录下的Directory对象数组 |
GetFiles() |
获取当前目录下的File对象数组 |
Delete() |