电竞比分网-中国电竞赛事及体育赛事平台

分享

二進制文件和文本文件到底有什么區(qū)別

 Ralf_Jones 2008-01-17
二進制文件和文本文件到底有什么區(qū)別(權威)     CSDN Blog推出文章指數(shù)概念,文章指數(shù)是對Blog文章綜合評分后推算出的,綜合評分項分別是該文章的點擊量,回復次數(shù),被網(wǎng)摘收錄數(shù)量,文章長度和文章類型;滿分100,每月更新一次。

從文件編碼的方式來看,文件可分為ASCII碼文件和二進制碼文件兩種。  
   
    ASCII文件也稱為文本文件,這種文件在磁盤中存放時每個字符對應一個字節(jié),用于存放對應的ASCII碼。例如,數(shù)5678的存儲形式為:  
  ASC碼:    00110101   00110110   00110111   00111000  
       ↓       ↓    ↓      ↓  
  十進制碼:   5     6    7    8   共占用4個字節(jié)。ASCII碼文件可在屏幕上按字符顯示,   例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內(nèi)容。   由于是按字符顯示,因此能讀懂文件內(nèi)容。  
   
    二進制文件是按二進制的編碼方式來存放文件的。   例如,   數(shù)5678的存儲形式為:   00010110   00101110只占二個字節(jié)。二進制文件雖然也可在屏幕上顯示,   但其內(nèi)容無法讀懂。C系統(tǒng)在處理這些文件時,并不區(qū)分類型,都看成是字符流,按字節(jié)進行處理。   輸入輸出字符流的開始和結束只由程序控制而不受物理符號(如回車符)的控制。   因此也把這種文件稱作“流式文件”。  

 

16樓  liujingfu123   (Oh_My_GoD) 五級用戶 該版得分小于等于5000分,大于2000分  回復于 2004-12-17 08:49:17  得分 10

我也說兩句吧:(摘抄自C語言之家)  
    
            什么是流(stream)?  
   
          流是程序輸入或輸出的一個連續(xù)的字節(jié)序列,設備(例如鼠標、鍵盤、磁盤、屏幕、調制解調器和打印機)的輸入和輸出都是用流來處理的。在C語言中,所有的流均以文件的形式出現(xiàn)----不一定是物理磁盤文件,還可以是對應于某個輸入/輸出源的邏輯文件。C語言提供了5種標準的流,你的程序在任何時候都可以使用它們,并且不必打開或關閉它們。以下列出了這5種標準的流。  
  ------------------------------------------------  
          名稱                     描     述                         例     子  
  ------------------------------------------------  
          stdin                 標準輸入                       鍵盤  
          stdout               標準輸出                         屏幕  
          stderr               標準錯誤                         屏幕  
          stdprn               標準打印機                     LPT1端口  
          stdaux               標準串行設備                 COM1端口  
  ------------------------------------------------  
          需要注意的是,stdprn和stdaux并不總是預先定義好的,因為LPT1和COM1端口在某些操作系統(tǒng)中是沒有意義的,而stdin,stdout和stderr總是預先定義好的。此外,stdin并不一定來自鍵盤,stdout也并不一定顯示在屏幕上,它們都可以重定向到磁盤文件或其它設備上。  
   
          文本模式(textmode)和二進制模式(binarymode)有什么區(qū)別?  
   
          流可以分為兩種類型:文本流和二進制流。文本流是解釋性的,最長可達255個字符,其中回車/換行將被轉換為換行符“\n”,(如果以"文本"方式打開一個文件,那么在讀字符的時候,系統(tǒng)會把所有的"\r\n"序列轉成"\n",在寫入時把"\n"轉成"\r\n"            archim ‘s opinion    )。二進制流是非解釋性的,一次處理一個字符,并且不轉換字符。          
          通常,文本流用來讀寫標準的文本文件,或者將字符輸出到屏幕或打印機,或者接受鍵盤的輸入;而二進制流用來讀寫二進制文件(例如圖形或字處理文檔),或者讀取鼠標輸入,或者讀寫調制解調器
。
4樓  yhz   (耗子) 二級用戶 該版得分小于等于500分,大于100分  回復于 2004-10-20 20:24:24  得分 10

如果用文本方式打開文件,會把“0D   0A”自動變換成“\n”來存在內(nèi)存中。寫入的時候反向處理。  
  而二進制方式打開的話,就不會有這個過程。  
   
  但是,Unicode/UTF/UCS格式的文件,必須用二進制方式打開和讀寫。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多