二進制流和文本流的區別


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

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

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

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

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

||||

50 48 48 49

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

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

 

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM