二進制流與文本流的區別

在c中引入了流(stream)的概念。它將數據的輸入輸出看作是數據的流入和留出,這樣不管是磁盤文件或者是物理設備(打印機、顯示器、鍵盤等),都可看作一種流的源和目的,視他們爲同一種東西,而不管其具體的屋裏解構,即對他們的操作,就是數據的流入和流出。這種把數據的輸入輸出操作對象,抽象化爲一種流,而不管它的具體結構的方法很有利於編程,而涉及流的輸出操作函數可用於各種對象,與其具體的實體無關,即具有通用性。

在c中流可分爲兩大類,即文本流和二進制流。

所謂文本流是指在流中流動的數據是以字符形式出現。

二進制流是指流動的是二進制數字序列,若流中有字符,則用一個字節的二進制ASCII碼錶示,若是數字,則用一個字節的二進制數標識。在流入流出時,對\n符號不進行變換。例如2001這個數,在文本流中用其ASCII碼錶示爲

'2' '0' '0' '1'

||||

50 48 48 49

共佔4字節。而在二進制流中則表示爲:00000111 11010001 用十六進制就是07D1。只佔兩字節。

由此看出,二進制流比文本流節省空間,且不用進行對\n的轉換,這樣可以大大加快流的速度,提高效率。因而,對於含有大量數字信息的數字流,可以採用二進制流的方式;對於含有大量字符信息的流,則採用文本流的方式。

 

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

大家都知道計算機的存儲在物理上是二進制的,所以文本文件與二進制文件的區別並不是物理上的,而是邏輯上的。這兩者只是在編碼層次上有差異。

簡單來說,文本文件是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。

二進制文件是基於值編碼的文件,你可以根據具體應用,指定某個值是什麼意思(這樣一個過程,可以看作是自定義編碼)

更多精彩內容,請掃描二維碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章