任务一 文件的种类
知识点
文件是保存在存储介质上的一组相关信息的集合。每个操作系统都提供了相应的文件系统来对文件进行管理。文件管理是指对文件的存储、读取、修改、复制、移动、删除等操作。
1. 文件的概念
在计算机中,文件是以计算机存储设备为载体存储在计算机上的信息的集合。文件可以是文本文件、数据文件、图片文件以及程序文件等。
2. C#.NET中的文件管理
在C#.NET中实现文件管理的是 System.IO 命名空间。它不仅可以:
- 通过
DriveInfo、DirectoryInfo、Path、File、FileInfo等类如同Windows一样实现文件的创建、复制、移动、删除等操作 - 还可以使用
FileStream、StreamReader、StreamWriter、BinaryReader、BinaryWriter等类以文件流的形式实现文件的定位、读、写以及修改其内容等操作
3. 根据数据性质分类
(1)程序文件(Program File)
这种文件存放的是可以由计算机执行的程序,包括源文件和可执行文件。
例如:扩展名为 .exe、.cs、.sln、.csproj 的文件都是程序文件。
(2)数据文件(Data File)
数据文件用来存放普通的数据。例如学生学籍、考试成绩、职工工资、库存商品等。这类数据必须通过特定程序来存取和管理。
例如:.docx、.xlsx、.frm 等文件都是数据文件。
4. 根据存取方式分类
(1)顺序文件
顺序文件是最常用的文件组织形式,由一系列字符按照某种顺序排列形成,适用于读写连续块中的文本文件。由于按字符形式存储,因此不宜存储太长的文件(如大量数字),否则会占据大量资源。我们经常使用的文本文件就是顺序文件。
优点:占空间少,容易使用。
缺点:维护困难。为了修改文件中的某个记录,必须把整个文件读入内存,修改完后再重新写入磁盘;顺序文件不能灵活地存取和增减数据,因而适用于有一定规律且不经常修改的数据。
(2)随机文件
随机文件是以随机方式存取的文件。"随机存取"指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。随机文件适用于读写有固定长度多字段记录的文件。
在C#.NET中,随机文件和顺序文件间的差异不是物理的,这两种文件都是以顺序字符流的方式将信息写在磁盘等存储介质上,其区别仅在于文件的访问和更新方法。在以随机的方式访问文件时,文件中的信息在逻辑上组织成定长的记录格式。
定长记录格式是指文件中的数据被解释成C#.NET的同一种类型的信息的集合,例如都是整型数或者都是用户所定义的某一种结构的数据等。这样就可以通过逻辑的方法,将文件指针直接移动到所读写的数据的起始位置,来读取数据或者将数据直接写到文件的这个位置上。
(3)二进制文件
二进制文件即按照二进制编码的方式来存放的文件,是除文本文件以外的文件。文本文件存在于计算机系统中,通常在文本文件最后一行放置文件结束标志,而且它的编码基于字符定长,译码相对容易一些;二进制文件编码是变化的,灵活利用率要高,而译码要难一些,不同的二进制文件译码方式是不同的。
5. 二进制文件相对于文本文件的三个好处
- 更节省空间:两者储存字符型数据时差别不大,但是在储存数字,特别是实型数字时,二进制更节省空间。
- 存取更快:内存中参加计算的数据都是用二进制无格式存储起来的,因此使用二进制储存到文件就更快捷。如果储存为文本文件,则需要一个转换的过程。在数据量很大时,两者就会有非常明显的速度差别。
- 数据精度不丢失:一些比较精确的数据,使用二进制储存不会造成有效位的丢失。
6. 三种文件类型对比
| 对比项 | 顺序文件 | 随机文件 | 二进制文件 |
|---|---|---|---|
| 存储方式 | 字符流顺序存储 | 字符流但逻辑上定长记录 | 二进制编码存储 |
| 访问方式 | 顺序读写 | 随机存取,可定位 | 按字节读写 |
| 适用场景 | 文本文件、连续数据 | 固定长度多字段记录 | 非文本数据、精确数据 |
| 优点 | 占空间少、易使用 | 可直接定位记录 | 省空间、速度快、精度不丢失 |
| 缺点 | 维护困难、不易修改 | 需固定记录长度 | 内容不易读懂 |