Java IO之流的分類詳解
一、根據流向分為輸入流和輸出流:
註意輸入流和輸出流是相對於程序而言的。
輸出:把程序(內存)中的內容輸出到磁盤、光盤等存儲設備中
輸入:讀取外部數據(磁盤、光盤等存儲設備的數據)到程序(內存)中
綜合起來:
二、根據傳輸數據單位分為字節流和字符流
上面的也是 Java IO流中的四大基流。這四大基流都是抽象類,其他流都是繼承於這四大基流的。
三、根據功能分為節點流和包裝流
節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader.
處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。
操作 IO 流的模板:
①、創建源或目標對象
輸入:把文件中的數據流向到程序中,此時文件是 源,程序是目標
輸出:把程序中的數據流向到文件中,此時文件是目標,程序是源
②、創建 IO 流對象
輸入:創建輸入流對象
輸出:創建輸出流對象
③、具體的 IO 操作
④、關閉資源
輸入:輸入流的 close() 方法
輸出:輸出流的 close() 方法
註意:1、程序中打開的文件 IO 資源不屬於內存裡的資源,垃圾回收機制無法回收該資源。如果不關閉該資源,那麼磁盤的文件將一直被程序引用著,不能刪除也不能更改。所以應該手動調用 close() 方法關閉流資源
最後這是 Java IO 流的整體架構圖,下面幾篇博客將會詳細講解這些流:
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- 使用BufferedReader讀取TXT文件中數值,並輸出最大值
- 淺談緩沖字符流 BufferedReader BufferedWriter用法
- 關於BufferedReader讀取文件指定字符集問題
- 關於BufferedReader的read()和readLine()的區別
- 聊聊為什麼要使用BufferedReader讀取File