1. 程式人生 > >第四十講 I/O流——IO流概述、特點及其分類

第四十講 I/O流——IO流概述、特點及其分類

IO流的概述

大多數應用程式都需要實現與裝置之間的資料傳輸,例如鍵盤可以輸入資料,顯示器可以顯示程式的執行結果等。在Java中,將這種通過不同輸入輸出裝置(鍵盤,記憶體,顯示器,網路等)之間的資料傳輸抽象的表述為“流”,程式允許通過流的方式與輸入輸出裝置進行資料傳輸。Java中的“流”都位於java.io包中,稱之為IO(輸入輸出)流。
輸入流和輸出流是相對於記憶體裝置而言的,將外設中的資料讀取到記憶體中即輸入,將記憶體的資料寫入到外設中即輸出。

IO流的特點

IO流的特點:

  1. IO流用來處理裝置之間的資料傳輸;
  2. Java對資料的操作是通過流(系統資源)的方式;
  3. Java用於操作流的物件都在java.io包中;
  4. 流按操作資料分為兩種:位元組流與字元流;
  5. 流按流向分為:輸入流,輸出流。

流即系統資源,Windows系統本身就可以操作裝置,各種語言只是使用了系統平臺上的這個資源,並對外提供了各種語言自己的操作功能,這些功能最終呼叫的是系統資源,當我們使用完資源後一定要記住釋放。

IO流的三種分類方式

在這裡插入圖片描述

  1. 按流的方向分為:輸入流和輸出流;
  2. 按流的資料單位不同分為:位元組流和字元流;
  3. 按流的功能不同分為:節點流和處理流。

IO流的層次結構

IO流的常用基類有:

  1. 位元組流的抽象基類:InputStream和OutputStream;
  2. 字元流的抽象基類:Reader和Writer。

注意:由這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾,以字首為其功能。例如,InputStream的子類——FileInputStream,Reader的子類——FileReader。

InputStream

在這裡插入圖片描述

OutputStream

在這裡插入圖片描述

Reader

在這裡插入圖片描述

Writer

在這裡插入圖片描述