java中的流,可以從不同的角度進行分類。
按照資料流的方向不同可以分為:輸入流和輸出流。
按照處理資料機關不同可以分為:位元組流和字元流。
按照實作功能不同可以分為:節點流和處理流。
輸出流:
輸入流:
是以輸入和輸出都是從程式的角度來說的。
位元組流:一次讀入或讀出是8位二進制。
字元流:一次讀入或讀出是16位二進制。
位元組流和字元流的原理是相同的,隻不過處理的機關不同而已。字尾是stream是位元組流,而字尾是reader,writer是字元流。
節點流:直接與資料源相連,讀入或讀出。
直接使用節點流,讀寫不友善,為了更快的讀寫檔案,才有了處理流。
處理流:與節點流一塊使用,在節點流的基礎上,再套接一層,套接在節點流上的就是處理流。
jdk提供的流繼承了四大類:inputstream(位元組輸入流),outputstream(位元組輸出流),reader(字元輸入流),writer(字元輸出流)。
以下是java中io中常用的流。
位元組輸入流:
位元組輸出流:
字元輸入流:
字元輸出流:
簡單介紹其上圖:
對檔案進行操作: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