文件的概念
什么是文件?
所谓文件一般指存储在外部介质(如磁盘磁带)上数据的集合.
什么是流?
操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入翰出形象地称为r依( tream).即翰入输出流.
C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成.一个输入输出流就是一个字节流或二进制流.
文件名:一个文件要有一个惟一的文件标识,以便用户识别和引用.文件标识包括三部分:
(1)文件路径(2)文件名主干(3)文件后缀
文件路径表示文件在外部存储设备中的位置.
文件标识被称为文件名,但文件名包含以上三个部分,不仅仅是文件名主干
文件后缀用来表示文件的性质.如:.txt .doc .dat .c .h
文件的分类
根据数据的组织形式,数据文件可分为ASCll文件和二进制文件:
ASCII文件(文本文件):每一个字节放一个ASCIl代码
二进制文件:把内存中的数据按照其在内存中的存储形式原样输出到磁盘上存放
两种文件的比较:
ASCII文件便于对字符进行逐个处理,也便于输出字符.但一般占存储空间较多,而且要花费转换时间.二进制文件可以节省外部存储空间和转换时间,但是一个字节并不对眼一个字符,不能直接输出字符形式
在C语言中用一个指针变量指向一个文件,这个指针称为文件指针.通过文件指针就可对它所指的文件进行各种操作.C语言内置的文件指针类型FILE*:
在标准输入输出库库中,系统定义了三个FILE型的指针常量:stdin(标准输入文件指针)指向在内存中与键盘相应的文件信息区,因此,用它进行输入就蕴含了从键盘输入.stdout(标准输出文件指针)指向在内存中与显示器屏幕相应的文件信息区,因此,用它进行输出就蕴含了输出到显示器屏幕.
文件缓冲区
文件的位置指针
位置指针用来指示当前的读写位置.
一般情况下,在对字符文件进行顺序读写时,文件的位置指针指向文件开头,这时如果对文件进行读的操作,就读第一个字符,然后文件的位置指针顺序向后移一个位置,在下一次执行读的操作时,就将指针指向的第二个字符读入.依此类推,直到遇文件尾.有时希望在一个文件的原有数据之后再添加新的数据,应该把文件位置指针移到文件尾.然后再接着写入新的数据,这就是文件的追加.