现在的位置: 首页 > 综合 > 正文

文本文件与二进制文件

2012年07月20日 ⁄ 综合 ⁄ 共 661字 ⁄ 字号 评论关闭

从本质上说所有文件都是二进制文件,文本I/O是在二进制I/O基础上提供的一层抽象,它封装了字符的编码和解码过程。在文本I/O中自动进行编码与解码。

 

在Windows和DOS系统中,狭义的文本文件是指扩展名为txt的文件。实际上,那些没有规定格式的,由可理解的的ASCII以及其它编码文字组成的文件都是文本文件,如C源程序文件,HTML超文本,XML。除此之外的其它文件都是二进制文件,如Word文件DOC,图像格式文件JPG。

 

使用fopen标志打开文本文件与二进制文件的说法并不准确。正确的说法应该是——以文本方式和二进制方式打开文件。

 

二进制方式很简单,读文件时,会原封不动的读出文件的全部内容,写的时候,也是把内存缓冲区的内容原封不动的写到文件中。

 

文本方式就不一样了。文本方式允许在输入或输出时,对某些字符进行替换、增加或删除等操作。

 

1)在Windows平台上,在读文件时,会将换行符号CR LF(0x0D 0x0A)全部转换成单个的0x0A,并且当遇到结束符CTRL+Z(0x1A)时,就认为文件已经结束。相应的,写文件时,会将所有的0x0A换成0x0D0x0A。

 

2)在UNIX平台上,没有文本方式和二进制方式的区分,使不使用'b'标志都是一样的。这是因为Unix文本文件的换行符只有一个字节LF(0x0A)。在C语言中,也是以LF即'/n'为换行符。

 

注意:存储一个十进制整数199到文本文件中,它实际上是以三个字符序列‘1’、‘9’、‘9’来存储的,而若是存储在二进制文件中,是以byte类型的值C7存储的。

抱歉!评论已关闭.