JAVA集錦--IO流梳理(一)

來源:互聯網
上載者:User

標籤:


概念

   

    IO,Input和Output的簡寫,即輸入輸出,因此IO流就是Input Output流。IO流相當於一個資料管道,主要用來

處理裝置之間的資料轉送。


原理


   輸入、輸出都是相對於程式本身來講的。從檔案中讀取資料輸出到程式中即為輸入資料流,例如從資料庫中查詢一條

使用者資訊。 從程式中將資料儲存到檔案中為輸出資料流,例如向資料庫中添加一條使用者資訊。

 

IO流工作原理樣本圖


 


分類


Java.io中定義了多個流類型來實現輸入/輸出功能,從不同的角度進行分類後如下:


  按照資料流的方向不同:輸入資料流和輸出資料流
  按照處理資料單位不同:位元組流和字元流
  按照實現功能類型不同:節點流和處理流


注意

   位元組流是最基本的,它的所有的InputStream和OutputStream的子類都是,主要用在處理位元據,它是按位元組

來處理的。但實際中很多的資料都是文本,所以有了字元流的概念,它是按虛擬機器的encode來處理,也就是要進行字

符集的轉化。

   

從上面一段文字,位元組流和字元流的主要區別是什麼呢?


1)位元組流在操作時不會用到緩衝區(記憶體),直接對檔案本身進行操作。而字元流在操作時使用了緩衝區,通過緩

沖區再操作檔案。


2)真正儲存和傳輸資料時都是以位元組為單位的,在硬碟上的所有檔案(圖片,聲音,視頻等等)都是以位元組形式存

在的,字元只是存在於記憶體當中的。所以,位元組流適用範圍更為寬廣


   其中輸入輸出資料流和位元組字元流根據它們的定義很容易理解。簡單介紹下節點流和處理流。在下篇文章中會做詳細

介紹。



IO流分類整合導圖


                                        

                                      IO流分類整合導圖(1)


                                      IO流分類整合導圖(2)



總結


   IO流是在裝置之間傳輸資料用的。結合生活中的執行個體,將一根水管一頭插在水桶中,另外一頭插在水池中。當我

們需要向水池中儲存水的時候,就需要通過中間的水管將一桶桶的水倒入水池中。當需要用水的時候同樣需要通過中

間的水管從水池中吸水到水桶中。


等價劃分到我們的IO流中:

水管------------------流
水流------------------資料流
水池-------------------檔案
水桶-------------------程式


   化抽象為具體,這樣一來是不是容易理解多了呢?



JAVA集錦--IO流梳理(一)

相關文章

聯繫我們

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