二进制文件和文本文件区别-小白笔记
1 視圖形式
不同的二進制文件需要不同的軟件來打開,例如BMP文件,需要一個讀圖的軟件來打開才能看到里面保存的圖像,MP3文件需要一個播放器軟件才能聽到里面的音頻。而文本文件只需要記事本就可以打開查看里面的內容。
2 存儲形式
二進制文件里存儲的東西是二進制數據,就是01串。而文本文件中存儲的是字符串,比如漢字。這點是從邏輯層面上所說的,不完全正確,但是便于理解,下面我會進階的細說這里。
3 性能
?二進制文件的讀寫速度非常快,因為它就是將數據在內存中的存儲形式(二進制)原模原樣放到文件中,讀出來的東西不需要經過處理就可以直接放到內存中去用,但是這些二進制串我們是看不懂也處理不了的,所以就需要專門的解碼軟件來處理,才能將信息顯現到我們面前,所以說二進制文件的讀寫比較快,但是對于我們程序員來說,可讀性差。
?而文本文件首先有一個編碼方式,例如ASCII或者Unicode,當我們要存一些東西時,會先用一定的編碼方式將這些東西轉為對應的編碼,再將這個編碼寫進文件里,讀的時候要先解碼,才能將對應的字符顯示出來,所以讀寫比較慢,但是讀出來的東西是字符串,我們能看懂,可讀性比較好。
4 拓展
1 為什么記事本打開二進制文件會亂碼?
? ? ? ? 再詳細說一下文本文件的存儲過程:數據在內存中都是以二進制存儲的,所以要先從內存中將數據的二進制取出來,用ASCII(或Unicode)編碼方式將其編碼,再將這個編碼存進文件中。特別有趣的地方就是:如果這些數據是字符,那么他們在內存中本身就是按ASCII碼編好的,所以存進文件文件時不需要再進行編碼了,也是原模原樣將內存中的東西放進了文件中(與二進制文件存儲方式一樣是不是?)。但如果不是字符型數據,例如int i=10,他在內存中存的是10的二進制:1010,這個二進制經過ASCII編碼之后,再解碼出來肯定就不是10了。
? ? ? ? 這就解釋了為什么用記事本打開二進制文件時會亂碼的問題。首先記事本也是一種解碼軟件,但他是按ASCII或者Unicode來解碼的,他會按自己的方式給二進制文件來解碼并顯示字符。所以用記事本打開二進制文件時,也不會全部亂碼,仔細看那些用字符串形式存的數據肯定不會亂碼。
2 文本文件也是二進制文件
? ? ? ? 剛才說了在邏輯層面上:文本文件存的是字符,二進制文件存的是二進制數據。其實在物理層面上講,我們的硬盤只能存儲二進制。所以廣義上講文本文件也是二進制文件,只不過文本文件里只能存字符型數據,而字符型數據經過ASCII或Unicode解碼之后我們能看懂。
? ? ? ? 換一個角度想,所有二進制文件在硬盤上都是01串,我們都看不懂,所以需要一個解碼軟件將這堆二進制轉換成我們想要的信息形式。所以這時就回到了文本文件和二進制文件的最表象區別:解碼軟件不同!用記事本打開二進制文件會亂碼,而二進制的解碼軟件基本都打不開文本文件。
5 總結
? ? ? ? 在實際存儲中最好是將數據分成字符數據和非字符數據兩類:
? ? ? ? 如果存儲的是字符數據,無論采用文本文件還是二進制文件都是沒有任何區別的,這點上面解釋過了。
? ? ? ? 如果存儲的是非字符數據,那么就要看我們使用的情況來決定:
? ? ? ? 1、如果是需要頻繁的保存和訪問數據,那么應該采取二進制文件進行存放,這樣可以節省存儲空間和轉換時間。
? ? ? ? 2、如果需要頻繁的向終端顯示數據或從終端讀入數據,那么就將這些數據轉為字符串型,采用文本文件進行存放,這樣可以節省轉換時間。
總結
以上是生活随笔為你收集整理的二进制文件和文本文件区别-小白笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机创新发展战略,计算机行业投资机会报
- 下一篇: 功能测试Ⅷ——业务流程测试