文字方式與二進位制方式讀寫檔案的windows區別總結
阿新 • • 發佈:2019-02-16
一、寫
二進位制方式寫,當遇到整型和浮點數時是以小端模式的整個十六進位制值寫入到檔案中(和記憶體中一樣),當遇到ascii字元和utf-16(unicode)型別的字元時候是用該編碼的key值(unicode 16位元組時候不作為小端模式而是書寫模式儲存)寫入到檔案中(和記憶體中一樣)。 文字方式寫,文字方式會根據當前程式使用的編碼方式,將所有整型/浮點數/字元,都當做字元一個個對映到編碼方式中的key,然後寫入到檔案中,windows下如果遇到'\n' 換行符那麼會翻譯為"\r\n"寫入到檔案中(linux下不會),所以文字方式存在一個程式記憶體資料到檔案儲存資料之間有一個翻譯的過程。 二、讀 二進位制讀二進位制寫入的檔案,那麼可以直接讀取到結構體中填充資料得到結果。二進位制讀取文字檔案,就是文字檔案原來的樣子讀取到記憶體中"\r\n"當做兩個字元讀取到記憶體中。 文字方式讀二進位制檔案會失敗。文字方式讀取文字檔案遇到"\r\n"會轉換為'\n"讀取到記憶體中。 所以二進位制方式和文字方式讀取文字檔案,得到的結果還是存在細微差異的。 二進位制檔案讀寫優缺點: 1.二進位制檔案儲存圖形影象資料和數值資料佔用的空間少,讀寫速度快。 2.二進位制檔案在記憶體中可以用fseek函式等,程式中處理起來比較靈活。 3.二進位制讀文字檔案會將"\r\n"全部讀取出來,不便於程式處理。 4.二進位制檔案的可移植性可能會出現問題,因為機器不一樣位數和浮點數的標準不一樣的話,會導致讀入到記憶體裡面發生差異。 文字檔案的讀寫優缺點: 1.處理文字檔案較方便,但是效率相對慢點。 2.文字檔案讀取因為“\r\n"會變成"\n",程式中建議不能用fseek處理,程式處理沒有那麼靈活。 2.文字檔案的可移植性也可能會有問題,因為新增"\r\n"的符號