文本文件和二进制文件

 
文本文件和二进制文件
2008-10-23 16:38
文本文件

文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。 特别的是,文本文件是指以ASCII码方式(也称文本方式)存储的文件,更确切地说,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息,因此文本文件不能存储声音、动画、图像、视频等信息。

设某个文件的内容是下面一行文字:中华人民共和国 CHINA 1949。 如果以文本方式存储,机器中存储的是下面的代码(以十六进制表示,机器内部仍以二进制方式存储):
D6 D0 BB AA C8 CB C3 F1 B9 B2 BA CD B9 FA 20 43 48 49 4E 41 20 31 39 34 39 A1 A3
其中,D6D0、BBAA、C8CB、C3F1、B9B2、BACD、B9FA分别是“中华人民共和国ABCD” 七个汉字的机内码,20是空格的ASCII码,43、48、49、4E、41分别是五个英文字母“CHINA”的ASCII码,31、39、34、39分别是数字字符“1949”的ASCII编码,A1A3是标点“。”的机内码。
从上面可以看出,文本文件中信息是按单个字符编码存储的,如1949分别存储“1”、“9”、“4”、“9”这四个字符的ASCII编码,如果将1949存储为079D(对应二进制为0000 0111 1001 1101,即十进制1949的等值数),则该文件一定不是文本文件。

二进制文件

文件作为信息存储的一个基本单位,根据其存储信息的方式不同,分为文本文件(又名ASCII文件)和二进制文件。如果将存储的信息采用字符串方式来保存,那么称此类文件为文本文件。如果将存储的信息严格按其在内存中的存储形式来保存,则称此类文件为二进制文件。例如下面的一段信息:
“This is 1000”
在C语言中,分别采用字符串和整数来表示,如下:
char szText[]=”This is ”; int a=1000;
其中“This is”为一个字符串,1000为整型数据。如果这两个数据在内存中是连续存放的,则其二进制编码的十六进制形式为:
54 68 69 73 20 69 73 20 00 03 E8 如果将上述信息全部按对应的ASCII编码来存储,则其二进制编码的十六进制形式为: 54 68 69 73 20 69 73 20 00 31 30 30 30
如果上述信息保存到文件中是按
54 68 69 73 20 69 73 20 00 03 E8 形式来存储,则称此文件为二进制文件。如果是按 54 68 69 73 20 69 73 20 00 31 30 30 30 形式来存储,则称此文件为文本文件。
在C语言中,把文件看作一组字符或二进制数据的集合,也称为“数据流”。“数据流”的结束标志为-1,在C语言中,规定文件的结束标志为EOF。EOF为一符号常量,其定义在头文件“stdio.h”中,形式如下:
#define EOF (-1) /* End of file indicator */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值