分享

二进制文件和文本文件到底有什么区别

 Ralf_Jones 2008-01-17
二进制文件和文本文件到底有什么区别(权威)     CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。  
   
    ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:  
  ASC码:    00110101   00110110   00110111   00111000  
       ↓       ↓    ↓      ↓  
  十进制码:   5     6    7    8   共占用4个字节。ASCII码文件可在屏幕上按字符显示,   例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。   由于是按字符显示,因此能读懂文件内容。  
   
    二进制文件是按二进制的编码方式来存放文件的。   例如,   数5678的存储形式为:   00010110   00101110只占二个字节。二进制文件虽然也可在屏幕上显示,   但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。   输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。   因此也把这种文件称作“流式文件”。  

 

16楼  liujingfu123   (Oh_My_GoD) 五级用户 该版得分小于等于5000分,大于2000分  回复于 2004-12-17 08:49:17  得分 10

我也说两句吧:(摘抄自C语言之家)  
    
            什么是流(stream)?  
   
          流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们。以下列出了这5种标准的流。  
  ------------------------------------------------  
          名称                     描     述                         例     子  
  ------------------------------------------------  
          stdin                 标准输入                       键盘  
          stdout               标准输出                         屏幕  
          stderr               标准错误                         屏幕  
          stdprn               标准打印机                     LPT1端口  
          stdaux               标准串行设备                 COM1端口  
  ------------------------------------------------  
          需要注意的是,stdprn和stdaux并不总是预先定义好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的。此外,stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,它们都可以重定向到磁盘文件或其它设备上。  
   
          文本模式(textmode)和二进制模式(binarymode)有什么区别?  
   
          流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"\r\n"序列转成"\n",在写入时把"\n"转成"\r\n"            archim ‘s opinion    )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。          
          通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器
4楼  yhz   (耗子) 二级用户 该版得分小于等于500分,大于100分  回复于 2004-10-20 20:24:24  得分 10

如果用文本方式打开文件,会把“0D   0A”自动变换成“\n”来存在内存中。写入的时候反向处理。  
  而二进制方式打开的话,就不会有这个过程。  
   
  但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多