日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二进制文件和文本文件的区别

發布時間:2023/12/31 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制文件和文本文件的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文本文件與二進制文件的定義

  文本文件:是基于字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。
  二進制文件:是基于值編碼的文件,你可以根據具體應用,指定某個值是什么意思(這樣一個過程,可以看作是自定義編碼。
  從上面可以看出文本文件基本上是定長編碼的(也有非定長的編碼如UTF-8)。而二進制文件可看成是變長編碼的,因為是值編碼嘛,多少個比特代表一個值,完全由你決定。大家可能對BMP文件比較熟悉,就拿它舉例子吧,其頭部是較為固定長度的文件頭信息,前2字節用來記錄文件為BMP格式,接下來的8個字節用來記錄文件長度,再接下來的4字節用來記錄bmp文件頭的長度。
 

 文本文件與二進制文件的存取

1、二進制文件是把內存中的數據按其在內存中的存儲形式原樣輸出到磁盤上存放,也就是說存放的是數據的原形式。

2、文本文件是把數據的終端形式的二進制數據輸出到磁盤上存放,也就是說存放的是數據的終端形式。

我們有必要把需要存儲的數據分為字符數據和非字符數據兩類。當你有數據要存儲的時候.首先要考慮的問題并不是你要選擇用二進制文件還是文本文件來進行存儲,而是首先得考慮你要存儲的數據是字符數據還是非字符數據.在此基礎上再討論應該選擇用什么文件進行存儲為好。

一、如果要存儲字符數據,無論是放在文本文件還是放在二進制文件中都和內存中的數據形式是沒有區別的.同樣也和終端形式沒有區別。那么在存儲和顯示的特性上也沒有任何區別,不浪費存儲空間也不浪費轉換時間。所以如果一個文件只存放字符數據,那么討論該文件是用文本文件或是二進制文件是沒有任何意義的。

二、如果要存儲非字符數據,則情況要復雜一些。

1、如果您需要頻繁地保存和訪問數據.那么應該采用二進制文件進行存放,這樣可以節省存儲空間和轉換時間。

2、如果您需要頻繁地向終端顯示數據或從終端讀人數據,那么應該采用文本文件進行存放,這樣可以節省轉換時間。

三、如果要存儲的數據中既有字符數據又有非字符數據那么要怎么辦呢?那就要綜合上述兩點進行權衡以找到最佳平衡點了

總結:字符數據本身在內存中就經過了編碼,所以無論是二進制還是文本形式都是一樣的,而對于非字符數據來說,例如inti=10;如果用二進制來進行存儲的話為1010,但是如果需要用文本形式來進行存儲的話就必須進行格式化編碼(對1和0分別編碼,即形式為‘1’和‘0’分別對應的碼值)。

文本文件與二進制文件的優缺點

  因為文本文件與二進制文件的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點,這個找本編碼的書來看看就比較清楚了。一般認為,文本文件編碼基于字符定長,譯碼容易些;二進制文件編碼是變長的,所以它靈活,存儲利用率要高些,譯碼難一些(不同的二進制文件格式,有不同的譯碼方式)。關于空間利用率,想想看,二進制文件甚至可以用一個比特來代表一個意思(位操作),而文本文件任何一個意思至少是一個字符.
  在windows下,文本文件不一定是以ASCII來存貯的,因為ASCII碼只能表示128的標識,你打開一個txt文檔,然后另存為,有個選項是編碼,可以選擇存貯格式,一般來說UTF-8編碼格式兼容性要好一些.而二進制用的計算機原始語言,不存貯兼容性. 很多書上還認為,文本文件的可讀性要好些,存儲要花費轉換時間(讀寫要編譯碼),而二進制文件可讀性差,存儲不存在轉換時間(讀寫不要編解碼,直接寫值).這里的可讀性是從軟件使用者角度來說的,因為我們用通用的記事本工具就幾乎可以瀏覽所有文本文件,所以說文本文件可讀性好;而讀寫一個具體的二進制文件需要一個具體的文件解碼器,所以說二進制文件可讀性差,比如讀BMP文件,必須用讀圖軟件.
  而這里的存儲轉換時間應該是從編程的角度來說的,因為有些操作系統如windows需要對回車換行符進行轉換(將”\n”,換成”\r\n”,所以文件讀寫時,操作系統需要一個一個字符的檢查當前字符是不是”\n”或”\r\n”).這個在存儲轉換在Linux操作系統中并不需要,當然,當在兩個不同的操作系統上共享文件時,這種存儲轉換又可能出來。
從存儲方式來說,文件在磁盤上的存儲方式都是二進制形式,所以,文本文件其實也應該算二進制文件。那么他們的區別呢,各自的優缺點呢?不急,我慢慢道來。

二進制文件讀寫和文本文件讀寫的區別

先從他們的區別來說,雖然都是二進制文件,但是二進制代表的意思不一樣。打個比方,一個人,我們可以叫他的大名,可以叫他的小名,但其實都是代表這個人。
二進制讀寫是將內存里面的數據直接讀寫入文本中,而文本呢,則是將數據先轉換成了字符串,再寫入到文本中。
下面我用個例子來說明:
我們定義了一個結構體,表示一個學生信息,我們打算把學生的信息分別用二進制和文本的方式寫入到文件中。

struct Student {int num;char name[20];float score; };

我們定義兩個方法,分別表示內存寫入和文本寫入
//使用二進制寫入

#include <iostream> using namespace std; #include <fstream>struct Student {int num;char name[20];float score; };void write_to_binary_file() {struct Student stdu;stdu.num = 111;sprintf_s(stdu.name,20,"%s","shine");stdu.score = 80.0f;fstream binary_file("test1.dat",ios::out|ios::binary|ios::app); //此處省略文件是否打開失敗的判斷binary_file.write((char *)&stdu,sizeof(struct Student));//二進制寫入的方式binary_file.close(); }//文本格式寫入 void write_to_text_file() {struct Student stdu;stdu.num = 111;sprintf_s(stdu.name,20,"%s","shine");stdu.score = 80.0f;FILE *fp = fopen("test2.dat","a+"); //此處省略文件是否打開失敗的判斷fprintf(fp,"%d%s%f",stdu.num,stdu.name,stdu.score); //將數據轉換成字符串(字符串的格式可以自己定義)fclose(fp); }//MAIN函數調用前面兩個方法 int main() {write_to_binary_file();write_to_text_file();return 0; }

總結

以上是生活随笔為你收集整理的二进制文件和文本文件的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 无码gogo大胆啪啪艺术 | 五月天视频网站 | 国产又爽又黄游戏 | 免费看毛片的网站 | 完美搭档在线观看 | 日本黄色小视频 | 中文字幕乱码一区二区 | 51啪影院 | 久久av一区二区三区亚洲 | 欧美日韩小视频 | 久草一本 | 男女黄色网 | 麻豆va| jlzzjlzz国产精品久久 | 亚洲人成7777 | 午夜精品久久久久久久久 | 天天免费视频 | 成人欧美一区二区三区黑人孕妇 | 亚洲黄色片 | 亚洲色图少妇 | 日韩精品一区二 | 久久久精品国产sm调教网站 | 三级网站免费 | www.香蕉视频 | 日韩无 | 国产二页 | 91中文字幕永久在线 | 一本色道久久综合亚洲精品图片 | 日本二区在线观看 | 久久精品电影 | 黄色成人免费视频 | 中文资源在线播放 | 国产学生美女无遮拦高潮视频 | 你懂得在线 | 亚洲自拍偷拍一区二区三区 | 97人人爱| 国产精品视频一区在线观看 | 日韩视频中文字幕在线观看 | 国产真实乱人偷精品视频 | av日韩在线免费观看 | 91精品在线视频观看 | 影音先锋二区 | 国产九色在线 | 国产高清一区在线 | 国产精品66 | 中文字幕 人妻熟女 | 好大好爽好舒服 | 岛国一区 | 黄色3级视频 | 男人午夜av| 色在线视频 | 国产性一乱一性一伧一色 | 成人亚洲精品久久久久软件 | 成人区人妻精品一区二区网站 | 国产精品第108页 | 本站只有精品 | 人人草在线 | 精品久久久视频 | 日韩高清av| h网站在线播放 | 国模少妇一区二区 | 精品一区二区久久久 | 伊人福利视频 | 中文字幕免费中文 | 少女情窦初开的第4集在线观看 | 国产精品日本一区二区在线播放 | 日本公妇乱偷中文字幕 | a级片黄色| 麻豆国产一区二区三区四区 | 可以直接看av的网址 | 亚洲国产一区二区三区在线观看 | 91xxx在线观看 | 91丨porny丨九色 | 先锋资源中文字幕 | 在线观看免费www | 成人啪啪网站 | 超碰在线个人 | 69精品久久久久久久 | youjizz视频 | 伊人久久一区二区三区 | 欧美,日韩,国产在线 | 性猛交ⅹxxx富婆video | 日韩性xx| 9久久精品 | 日本女人毛片 | 久久久久久久久久国产精品 | 欧美极品少妇xxxxⅹ喷水 | 脱裤吧导航 | 日本免费高清一区二区 | 久久亚洲精精品中文字幕早川悠里 | 一二区在线观看 | 国产精品一区二区电影 | 久久久久久九九九九 | 国产无套视频 | 亚洲中文字幕一区在线 | 久久精品视频1 | 久久在线一区二区 | 另类尿喷潮videofree | 欧美三日本三级少妇99 |