文字檔案與二進位制檔案的區別
簡單來說,
- 文字檔案是基於字元編碼的檔案,常見的編碼有ASCII編碼,UNICODE編碼等等。
- 二進位制檔案是基於值編碼的檔案,你可以根據具體應用,指定某個值是什麼意思(這樣一個過程,可以看作是自定義編碼)。
從上面可以看出文字檔案基本上是定長編碼的,基於字元嘛,每個字元在具體編碼中是固定的,ASCII碼是8個位元的編碼,UNICODE一般佔16個位元。
而二進位制檔案可看成是變長編碼的,因為是值編碼嘛,多少個位元代表一個值,完全由你決定。
C的文字讀寫和二進位制讀寫
應該說C的文字讀寫與二進位制的讀寫是一個程式設計層次上的問題,與具體的作業系統有關,所以”用文字方式讀寫的檔案一定是文字檔案,用二進位制讀寫的檔案一定是二進位制檔案"這類觀點是錯誤的.下面的講述非明確指出作業系統型別,都暗指windows.
C的文字方讀寫與二進位制讀寫的差別僅僅體現在回車換行符的處理上.
文字方式寫時,每遇到一個''\n''(0AH換行符),它將其換成''\r
\n''(0D0AH,回車換行),然後再寫入檔案;當文字讀取時,它每遇到一個''\r\n''將其反變化為''\n'',然後送到讀緩衝區.
二進位制讀寫時,其不存在任何轉換,直接將寫緩衝區中資料寫入檔案.
對於內容為
“Ab123\r\n" (41 62 31 32 33 0D 0A)的檔案,
pf1 = fopen("f:\\1.txt","r");或者pf1
= fopen("f:\\1.txt","rb");
for(int i=0;i <6;i++){
fread(&a[i],1,1,pf1);
printf("%0X ",a[i]);
}
fclose(pf1);//關閉檔案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-704170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言實現檔案複製功能(包括文字檔案和二進位制檔案)C語言
- 判斷檔案為文字檔案還是二進位制檔案(C語言實現)C語言
- MySQL二進位制檔案(binlog)MySql
- 二進位制檔案視覺化(二)視覺化
- Git處理二進位制檔案Git
- 檔案操作(二進位制拷貝)
- 介面返回二進位制檔案的下載。
- 6.3建立自己執行的二進位制檔案
- 二進位制檔案記憶體對映記憶體
- 二進位制檔案安裝安裝etcd
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- 二進位制檔案和符號檔案(PDB)如何校驗是否匹配符號
- 文盤Rust -- 如何把配置檔案打包到二進位制檔案裡Rust
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- C++ 讀取二進位制檔案到char*C++
- 檢視寶塔mysql二進位制檔案 mysqlbinlogMySql
- 【Linux】檢視二進位制檔案內容_hexdumpLinux
- golang: 給二進位制檔案增加版本資訊Golang
- 根據介面返回的二進位制流匯出檔案
- JS下載後臺介面返回的二進位制檔案JS
- od 轉儲 二進位制檔案常用命令
- flutter-讀寫二進位制檔案到裝置Flutter
- 前端怎麼處理二進位制檔案下載前端
- CentOS6.5二進位制檔案安裝MySQL5.6.39CentOSMySql
- 使用 IDA 處理 U-Boot 二進位制流檔案boot
- office檔案格式複合文件二進位制結構解析
- Debian 二進位制檔案(華文宋體字型)打包解包
- 逆向被虛擬機器所保護的二進位制檔案虛擬機
- a標籤與Blob下載檔案的區別和獲取檔案下載進度
- 透過禁止比較讓 Go 二進位制檔案變小Go
- 二進位制陣列實戰 – 純前端匯出Excel檔案陣列前端Excel
- 二進位制陣列實戰 - 純前端匯出Excel檔案陣列前端Excel
- 教你如何將二進位制檔案匯入到資料庫資料庫
- js對檔案和二進位制操作的一些方法彙總JS
- 通過Nvidia簽名的二進位制檔案執行系統命令
- 各個資料庫存二進位制大檔案的效能測試資料庫
- mysqlbinlog命令詳解 Part 7 備份二進位制日誌檔案MySql
- 教你如何在C++二進位制檔案中注入git資訊C++Git
- Linux中檔案與目錄的區別Linux