跳到主要内容

任务一 文件的种类

知识点​

文件是保存在存储介质上的一组相关信息的集合。每个操作系统都提供了相应的文件系统来对文件进行管理。文件管理是指对文件的存储、读取、修改、复制、移动、删除等操作。

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. 二进制文件相对于文本文件的三个好处​

  1. 更节省空间:两者储存字符型数据时差别不大,但是在储存数字,特别是实型数字时,二进制更节省空间。
  2. 存取更快:内存中参加计算的数据都是用二进制无格式存储起来的,因此使用二进制储存到文件就更快捷。如果储存为文本文件,则需要一个转换的过程。在数据量很大时,两者就会有非常明显的速度差别。
  3. 数据精度不丢失:一些比较精确的数据,使用二进制储存不会造成有效位的丢失。

6. 三种文件类型对比​

对比项顺序文件随机文件二进制文件
存储方式字符流顺序存储字符流但逻辑上定长记录二进制编码存储
访问方式顺序读写随机存取,可定位按字节读写
适用场景文本文件、连续数据固定长度多字段记录非文本数据、精确数据
优点占空间少、易使用可直接定位记录省空间、速度快、精度不丢失
缺点维护困难、不易修改需固定记录长度内容不易读懂