# IO流原理及流的分類 ### 一、Java IO流原理 1. I/O是Input/Output的縮寫,I/O技術是非常實用的技術,用於處理數據傳輸。如讀/寫文件,網路通訊等。 2. Java程式中,對於數據的輸入/輸出操作以”流(stream)“的方式進行。 3. java.io包下提供了各種” ...
IO流原理及流的分類
一、Java IO流原理
- I/O是Input/Output的縮寫,I/O技術是非常實用的技術,用於處理數據傳輸。如讀/寫文件,網路通訊等。
- Java程式中,對於數據的輸入/輸出操作以”流(stream)“的方式進行。
- java.io包下提供了各種”流“類和介面,用以獲取不同種類的數據,並通過方法輸入或輸出數據。
- 輸入input:讀取外部數據(磁碟、光碟等存儲設備的數據)到程式(記憶體)中。
- 輸出output:將程式(記憶體)數據輸出到磁碟、光碟等存儲設備中。
二、流的分類
- 按操作數據單位不同分為:位元組流(8bit)二進位文件適合,字元流(按字元)文本文件適合(位元組流本身沒有緩衝區,緩衝位元組流相對於位元組流,效率提升非常高。而字元流本身就帶有緩衝區,緩衝字元流相對於字元流效率提升就不是那麼大了。)
- 按數據流的流向不同分為:輸入流,輸出流
- 按流的角色的不同分為:節點流,處理流/包裝流
(1)Java的IO流共涉及40多個類,實際上非常規則,都是從如上4個抽象基類派生出來的。
(2)由這四個類派生出來的子類名稱都是以其父類名作為子類名的尾碼。
【圖片來源:http://t.csdn.cn/c80Qi】
-
文件和流的關係:
文件是電腦管理數據的基本單位,同時也是應用程式保存和讀取數據的一個重要場所。
流是位元組序列的抽象概念,例如文件、輸入/輸出設備、內部進程通信管道等。流提供一種向後備存儲器寫入位元組和從後備存儲器讀取位元組的方式。
文件是流的載體,容器。