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

2020-07-16 10:04:23
在 UNIX/Linux 平台中,用文字方式或二進位制方式開啟檔案沒有任何區別。

在 UNIX/Linux 平台中,文字檔案以n(ASCII 碼為 0x0a)作為換行符號;而在 Windows 平台中,文字檔案以連在一起的rnr的 ASCII 碼是 0x0d)作為換行符號。

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

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

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