廣義上的二進位制檔案包括文字檔案,這裡討論的是狹義上的二進位制檔案與文字檔案的比較:1. 能儲存的資料型別不同 文字檔案只能儲存char型字元變數。 二進位制檔案可以儲存char/int/short/long/float/……各種變數值。2. 每條資料的長度 文字檔案每條資料通常是固定長度的。以ASCII為例,每條資料(每個字元)都是1個位元組。 二進位制檔案每條資料不固定。如short佔兩個位元組,int佔四個位元組,float佔8個位元組……3. 讀取的軟體不同 文字檔案編輯器就可以讀寫。比如記事本、NotePad++、Vim等。 二進位制檔案需要特別的解碼器。比如bmp檔案需要影象檢視器,rmvb需要播放器……4. 作業系統對換行符("\n")的處理不同(不重要) 文字檔案,作業系統會對"\n"進行一些隱式變換,因此文字檔案直接跨平臺使用會出問題。
廣義上的二進位制檔案包括文字檔案,這裡討論的是狹義上的二進位制檔案與文字檔案的比較:1. 能儲存的資料型別不同 文字檔案只能儲存char型字元變數。 二進位制檔案可以儲存char/int/short/long/float/……各種變數值。2. 每條資料的長度 文字檔案每條資料通常是固定長度的。以ASCII為例,每條資料(每個字元)都是1個位元組。 二進位制檔案每條資料不固定。如short佔兩個位元組,int佔四個位元組,float佔8個位元組……3. 讀取的軟體不同 文字檔案編輯器就可以讀寫。比如記事本、NotePad++、Vim等。 二進位制檔案需要特別的解碼器。比如bmp檔案需要影象檢視器,rmvb需要播放器……4. 作業系統對換行符("\n")的處理不同(不重要) 文字檔案,作業系統會對"\n"進行一些隱式變換,因此文字檔案直接跨平臺使用會出問題。
在Windows下,寫入"\n"時,作業系統會隱式的將"\n"轉換為"\r\n",再寫入到檔案中;讀的時候,會把“\r\n”隱式轉化為"\n",再讀到變數中。在Linux下,寫入"\n"時,作業系統不做隱式變換。 二進位制檔案,作業系統不會對"\n"進行隱式變換,很多二進位制檔案(如電影、圖片等)可以跨平臺使用。——轉自之前寫的博文 文字檔案和二進位制檔案比較