1. 程式人生 > >Java I/O總結(二)——流的分類

Java I/O總結(二)——流的分類

    輸入流 讀(Reader|InputStream) 方向     輸出流 寫(Writer|OutputStream)

    位元組流(Stream) 處理單位      字元流(Reader|Writer)

        緩衝流(Buffered) 是否帶有緩衝區             非緩衝流

一、根據流向分為輸入流和輸出流:

  注意輸入流和輸出流是相對於程式而言的。

  輸出:把程式(記憶體)中的內容輸出到磁碟、光碟等儲存裝置中

    

     輸入:讀取外部資料(磁碟、光碟等儲存裝置的資料)到程式(記憶體)中

    

  綜合起來:

   

二、根據傳輸資料單位分為位元組流和字元流

  

  上面的也是 Java IO流中的四大基流。這四大基流都是抽象類,其他流都是繼承於這四大基流的。

三、根據功能分為節點流和包裝流

  節點流:可以從或向一個特定的地方(節點)讀寫資料。如FileReader.

  處理流:是對一個已存在的流的連線和封裝,通過所封裝的流的功能呼叫實現資料讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流物件做引數。一個流物件經過其他流的多次包裝,稱為流的連結。

 操作 IO 流的模板:

  ①、建立源或目標物件

    輸入:把檔案中的資料流向到程式中,此時檔案是 源,程式是目標

    輸出:把程式中的資料流向到檔案中,此時檔案是目標,程式是源

  ②、建立 IO 流物件

    輸入:建立輸入流物件

    輸出:建立輸出流物件

  ③、具體的 IO 操作

  ④、關閉資源

    輸入:輸入流的 close() 方法

    輸出:輸出流的 close() 方法

注意:1、程式中開啟的檔案 IO 資源不屬於記憶體裡的資源,垃圾回收機制無法回收該資源。如果不關閉該資源,那麼磁碟的檔案將一直被程式引用著,不能刪除也不能更改。所以應該手動呼叫 close() 方法關閉流資源

最後這是 Java IO 流的整體架構圖,下面幾篇部落格將會詳細講解這些流: