檔案的文字開啟方式和二進位制開啟方式的區別

2021-09-28 00:10:05 字數 767 閱讀 8829

在unix/linux平台中,用文字方式或二進位制方式開啟檔案沒有任何區別。

在 unix/linux 平台中,文字檔案以\n(ascii碼為 0x0a)作為換行符號;而在windows 平台中,文字檔案以連在一起的\r\n\r的 ascii 碼是 0x0d)作為換行符號。

在 windows 平台中,如果以文字方式開啟檔案,當讀取檔案時,系統會將檔案中所有的\r\n轉換成乙個字元\n,如果檔案中有連續的兩個位元組是 0x0d0a,則系統會丟棄前面的 0x0d 這個位元組,唯讀入 0x0a。當寫入檔案時,系統會將\n轉換成\r\n寫入。

也就是說,如果要寫入的內容中有位元組為 0x0a,則在寫人該位元組前,系統會自動先寫入乙個 0x0d。因此,如果用文字方式開啟二進位制檔案進行讀寫,讀寫的內容就可能和檔案的內容有出入。

因此,用二進位制方式開啟檔案總是最保險的。

結論:

在unix/linux平台下:

讀寫進檔案的內容,和檔案訪問的內容是一致的,使用文字方式或者二進位制方式,都是一樣;

在windows平台下:

讀寫進檔案的內容,和檔案訪問的內容是不一致的:檔案內容\r\n讀成\n,寫\n檔案內容\r\n(使用文字方式開啟);

讀寫進檔案的內容,和檔案訪問的內容是一致的(使用二進位制方式開啟);

檔案的文字開啟方式和二進位制開啟方式的區別

在 unix linux 平台中,用文字方式或二進位制方式開啟檔案沒有任何區別。在 unix linux 平台中,文字檔案以 n ascii 碼為 0x0a 作為換行符號 而在 windows 平台中,文字檔案以連在一起的 r n r的 ascii 碼是 0x0d 作為換行符號。在 windows ...

c 開啟檔案方式(二進位制和文字)

c語言檔案操作的乙個問題 c語言中開啟檔案有兩種方式,一種是二進位制方式,另一種是文字方式 ascii碼方式 這兩種方式有什麼區別?對於linux這種只有一種檔案型別的作業系統來說是沒有區別的 我們就以windows為例說說區別 a.以文字方式開啟檔案,若將資料寫入檔案,如果遇到換行符 n asii...

C語言採用文字方式和二進位制方式開啟檔案的區別分析

投稿 shichen2014 字型 增加 稍微了解c程式設計的人都知道,文字檔案和二進位制檔案在計算機上面都是以0,1儲存的,那麼兩者怎麼還存在差別呢?對於程式設計人員來說,文字檔案和二進位制檔案就是乙個宣告,指明了你應該以什麼方式 文字方式 二進位制 開啟這個檔案,用什麼函式讀寫這個檔案 讀寫函式...