淺談Java中流的概念與用途

來源:互聯網
上載者:User

標籤:漢字   處理   輸入   original   容器串連   images   java   學習   特性   

Java所有的I/O機制都是基於資料流進行輸入輸出,這些資料流表示了字元或者位元組資料的流動序列。Java的I/O流提供了讀寫資料的標準方法。任何Java中表示資料來源的對象都會提供以資料流的方式讀寫它的資料的方法。

標準輸入輸出,檔案的操作,網路上的資料流,字串流,物件流程,zip檔案流等等,java中將輸入輸出抽象稱為流,就好像水管,將兩個容器串連起來。將資料沖外存中讀取到記憶體中(供Java程式使用)的稱為輸入資料流,將資料從記憶體寫入外存中的稱為輸出資料流。

流是一個很形象的概念,當程式需要讀取資料的時候,就會開啟一個通向資料來源的流,這個資料來源可以是檔案,記憶體,或是網路連接。類似的,當程式需要寫入資料的時候,就會開啟一個通向目的地的流。

流是一組有順序的,有起點和終點的位元組集合,是對資料轉送的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料轉送,根據資料轉送特性將流抽象為各種類,方便更直觀的進行資料操作。

 

  

流的分類:

流的分類,Java的流分類比較豐富,剛接觸的人看了後會感覺很暈。流分類的方式很多:

1、按照輸入的方向分,輸入資料流和輸出資料流,輸入輸出的參照對象是Java程式。

2、按照處理資料的單位不同分,位元組流和字元流,位元組流讀取的最小單位是一個位元組(1byte=8bit),而字元流一次可以讀取一個字元(1char = 2byte = 16bit)。

3、按照功能的不同分,分節點流和處理流,節點流是直接從一個源讀寫資料的流(這個流沒有經過封裝和修飾),處理流是在對節點流封裝的基礎上的 一種流,FileInputStream是一個節點流,可以直接從檔案讀取資料,但是BufferedInputStream可以封裝 FileInputStream,使得其有緩衝功能。

流的類結構圖:

 

  

Java中“流”的概念與簡介

位元組流與字元流:

字元流的由來: 因為資料編碼的不同,而有了對字元進行高效操作的流對象。本質其實就是基於位元組流讀取時,去查了指定的碼錶。 位元組流和字元流的區別:

讀寫單位不同:位元組流以位元組(8bit)為單位,字元流以字元為單位,根據碼錶映射字元,一次可能讀多個位元組。

處理對象不同:位元組流能處理所有類型的資料(片、avi等),而字元流只能處理字元類型的資料。

結論:只要是處理純文字資料,就優先考慮使用字元流。除此之外都使用位元組流。

這裡需要提到的一句是:一個英文字元的長度是1byte,而漢字的長度是2byte. 如果我們把英漢混合的文檔統一按照位元組流處理,就會出現分割混亂,出現亂碼。這是,我們需要使用字元流來處理。這就是為什麼在處理文檔的時候,都要把inputstream放到FileReader中。

方向性:

流分為輸入資料流和輸出資料流。但這都是相對的。特別是在Hadoop的序列化時,總是不知道到底使用輸入資料流還是輸出資料流。這裡,我們可以做個區分:

序列化,就是把資料做位元組流處理。而位元組流只是一種儲存形式。他不會被程式識別,需要把位元組流還原序列化為java識別的對象,才可以被java程式識別。所以,序列化就是位元組流化,就是從java代碼或記憶體中輸出到外存。而還原序列化就是對象化,就是從外存中將位元組流資料轉化為程式識別的對象。


歡迎加入學習交流群569772982,大家一起學習交流。

淺談Java中流的概念與用途

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.