需要了解的概念 包括:数据流、缓冲区、文件类型、文件存取方式 1
1 数据流: 指程序与数据的交互是以流的形式进行的
进行 C 语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流
2 缓冲区(Buffer): 指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据
它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多
C 语言中带缓冲区的文件处理: C 语言的文件处理功能依据系统是否设置“缓冲区”分为两种:一种是设置缓冲区,另一种是不设置缓冲区
由于不设置缓冲区的文件处理方式,必须使用较低级的I/O 函数(包含在头文件 io
h 和 fcntl
h 中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是 C 的标准函数,跨平台操作时容易出问题
下面只介绍第一种处理方式,即设置缓冲区的文件处理方式: 当使用标准 I/O 函数(包含在头文件 stdio
h 中)时,系统会自动设置缓冲区,并通过数据流来读写文件
当进行文件读取时,不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后程序再从缓冲区中读取所需数据
当写入文件时,并不会马上写入磁盘中,而是先写入缓冲区,只有在缓冲区已满或“关闭文件”时,才会将数据写入磁盘
如下图所示: 1
3 文件类型: 分为文本文件和二进制文件两种
文本文件是以字符编码的方式进行保存的
二进制文件将内存中数据原封不至文件中,适用于非字符为主的数据
如果以记事本打开,只会看到一堆乱码
其实,除了文本文件外,所有的数据都可以算是二进制文件
二进制文件的优点在于存取速度快,占用空间小,以及可随机存取数据
4 文件存取方式: 包括顺序存取方式和随机存取方式两种
顺序读取也就是从上往下,一笔一笔读取文件的内容
保存数据时,将