二進制流和文本流的區別

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

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

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

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

'2' '0' '0' '1'字符編碼

||||效率

50 48 48 49stream

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

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

 

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

你們都知道計算機的存儲在物理上是二進制的,因此文本文件與二進制文件的區別並非物理上的,而是邏輯上的。這二者只是在編碼層次上有差別。

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

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

相關文章
相關標籤/搜索