天天看點

【轉】Java I/O流概念分析整理

java中的流,可以從不同的角度進行分類。

按照資料流的方向不同可以分為:輸入流和輸出流。

按照處理資料機關不同可以分為:位元組流和字元流。

按照實作功能不同可以分為:節點流和處理流。

輸出流:

【轉】Java I/O流概念分析整理

輸入流:

【轉】Java I/O流概念分析整理

是以輸入和輸出都是從程式的角度來說的。

位元組流:一次讀入或讀出是8位二進制。

字元流:一次讀入或讀出是16位二進制。

位元組流和字元流的原理是相同的,隻不過處理的機關不同而已。字尾是stream是位元組流,而字尾是reader,writer是字元流。

節點流:直接與資料源相連,讀入或讀出。

【轉】Java I/O流概念分析整理

直接使用節點流,讀寫不友善,為了更快的讀寫檔案,才有了處理流。

處理流:與節點流一塊使用,在節點流的基礎上,再套接一層,套接在節點流上的就是處理流。

【轉】Java I/O流概念分析整理

jdk提供的流繼承了四大類:inputstream(位元組輸入流),outputstream(位元組輸出流),reader(字元輸入流),writer(字元輸出流)。

以下是java中io中常用的流。

【轉】Java I/O流概念分析整理

位元組輸入流:

【轉】Java I/O流概念分析整理

位元組輸出流:

【轉】Java I/O流概念分析整理

字元輸入流:

【轉】Java I/O流概念分析整理

字元輸出流:

【轉】Java I/O流概念分析整理

簡單介紹其上圖:

對檔案進行操作:fileinputstream(位元組輸入流),fileoutputstream(位元組輸出流),filereader(字元輸入流),filewriter(字元輸出流)

對管道進行操作:pipedinputstream(位元組輸入流),pipedoutstream(位元組輸出流),pipedreader(字元輸入流),pipedwriter(字元輸出流)

pipedinputstream的一個執行個體要和pipedoutputstream的一個執行個體共同使用,共同完成管道的讀取寫入操作。主要用于線程操作。

位元組/字元數組:bytearrayinputstream,bytearrayoutputstream,chararrayreader,chararraywriter是在記憶體中開辟了一個位元組或字元數組。

buffered緩沖流::bufferedinputstream,bufferedoutputstream,bufferedreader,bufferedwriter,是帶緩沖區的處理流,緩沖區的作用的主要目的是:避免每次和硬碟打交道,提高資料通路的效率。

轉化流:inputstreamreader/outputstreamwriter,把位元組轉化成字元。

資料流:datainputstream,dataoutputstream。

如果,您認為閱讀這篇部落格讓您有些收獲,不妨點選一下右下角的【推薦】 

如果,您希望更容易地發現我的新部落格,不妨點選一下左下角的【關注我】 

如果,您對我的部落格内容感興趣,請繼續關注我的後續部落格,我是【orson】 

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段 聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 

轉載:http://www.cnblogs.com/java-class/p/4709965.html