第四十講 I/O流——IO流概述、特點及其分類
阿新 • • 發佈:2018-11-29
IO流的概述
大多數應用程式都需要實現與裝置之間的資料傳輸,例如鍵盤可以輸入資料,顯示器可以顯示程式的執行結果等。在Java中,將這種通過不同輸入輸出裝置(鍵盤,記憶體,顯示器,網路等)之間的資料傳輸抽象的表述為“流”,程式允許通過流的方式與輸入輸出裝置進行資料傳輸。Java中的“流”都位於java.io包中,稱之為IO(輸入輸出)流。
輸入流和輸出流是相對於記憶體裝置而言的,將外設中的資料讀取到記憶體中即輸入,將記憶體的資料寫入到外設中即輸出。
IO流的特點
IO流的特點:
- IO流用來處理裝置之間的資料傳輸;
- Java對資料的操作是通過流(系統資源)的方式;
- Java用於操作流的物件都在java.io包中;
- 流按操作資料分為兩種:位元組流與字元流;
- 流按流向分為:輸入流,輸出流。
流即系統資源,Windows系統本身就可以操作裝置,各種語言只是使用了系統平臺上的這個資源,並對外提供了各種語言自己的操作功能,這些功能最終呼叫的是系統資源,當我們使用完資源後一定要記住釋放。
IO流的三種分類方式
- 按流的方向分為:輸入流和輸出流;
- 按流的資料單位不同分為:位元組流和字元流;
- 按流的功能不同分為:節點流和處理流。
IO流的層次結構
IO流的常用基類有:
- 位元組流的抽象基類:InputStream和OutputStream;
- 字元流的抽象基類:Reader和Writer。
注意:由這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾,以字首為其功能。例如,InputStream的子類——FileInputStream,Reader的子類——FileReader。