二进制文件和文本文件到底有

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:33:47
二进制文件和文本文件到底有什么区别(权威)    

从文件编码的方式来看,文件可分为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)  回复于 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   (耗子)  回复于 2004-10-20 20:24:24  得分 10
如果用文本方式打开文件,会把“0D   0A”自动变换成“\n”来存在内存中。写入的时候反向处理。  
  而二进制方式打开的话,就不会有这个过程。  
   
  但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。