流的概念——文字資料流和二進位流

來源:互聯網
上載者:User
文字資料流和二進位流

引用:http://www.zzzhe.com/Article/HTML/1140.html

1. 什麼是流?

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

    給流下個概念,流是程式輸入或輸出的一個連續的位元組序列。

2. 流的分類和不同流的特性:
    在C中流可分為兩大類,即文字資料流(text stream)和二進位流(binary stream)。所謂文字資料流是指在流中流動的資料是以字元形式出現。在文字資料流中,'/n'被換成斷行符號CR和換行LF的代碼0DH和0AH。而當輸出時,則0DH和0AH本換成'/n'。
    二進位流是指流動的是位元字序列,若流中有字元,則用一個位元組的二進位ASCII碼錶示,若是數字,則用一個位元組的位元表示。在流入流出時,對/n符號不進行變換。例如2001這個數,在文字資料流中用其ASCII碼錶示為:
            '2' '0' '0' '1'
             |   |   |   |
            50  48  48  49
    共佔4位元組。而在二進位流中則表示為:00000111 11010001  用十六進位就是07D1。只佔兩位元組。
    由此看出,二進位流比文字資料流節省空間的,且不用進行對/n的轉換,這樣可以大大加快流的速度,提高效率。因而,對於含有大量數字資訊的數字流,可以採用二進位流的方式;對於含有大量字元資訊的流,則採用文字資料流的方式。

3. 文字檔與二進位檔案的優缺點
    因為文字檔與二進位檔案的區別僅僅是編碼上不同,所以他們的優缺點就是編碼的優缺點,這個找本編碼的書來看看就比較清楚了。一般認為,文字檔編碼基於字元定長,解碼容易些;二進位檔案編碼是變長的,所以它靈活,儲存利用率要高些,解碼難一些(不同的二進位檔案格式,有不同的解碼方式)。關於空間利用率,想想看,二進位檔案甚至可以用一個位元來代表一個意思(位操作),而文字檔任何一個意思至少是一個字元.

4. 總結

   雖然流本質來說都是網路上傳輸的0、1的位元位,但流中流動的資料的基本單元是不一樣的。

   文字資料流是指在流中流動的資料是以字元的形式出現的。流中的每一個字元對應一個位元組,用於存放對應的ASCII碼值;

   二進位流中的資料是按照二進位編碼的方式直接來存放檔案的。比如數5678的二進位流中的儲存形式為:00010110 00101110隻佔二個位元組。位元據也可在螢幕上顯示, 但其內容無法讀懂。

   所以,二進位流比文字資料流更節省空間的(),且不用對分行符號進行轉換,這樣可以大大加快流的速度,提高效率,二進位流沒有行長度的限制,也可以包含Null 字元(NULL)。因此,對於含有大量資料資訊的數字流,可以採用二進位流的方式;對於含有大量字元資訊的流,則採用文字資料流的方式。而對於文本的傳輸,兩者的效率基本上是一隻的,文字資料流本質上來講也是一種二進位流,只是在於位元組編碼的策略和格式不同而已。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.