理解好Java-IO中的節點流和處理流是理解Java輸入、輸出的關鍵基礎,因此,了解節點流和處理流相關的知識點尤為重要。
1.定義
(1)節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader。
(2)處理流(用來包裝節點流):是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。
2.區別與聯系
(1)節點流是低級流,直接跟數據源相接。
處理流(也叫包裝流)把節點流包裝了一層,屬於修飾器設計模式,不會直接與數據源相連,通過處理流來包裝節點流既可以消除不同節點流的實現差異,也可以提供更方便的方法來完成輸入輸出。
(2)處理流的功能主要體現在以下兩個方面:
1.性能的提高:主要以增加緩沖的方式來提高輸入輸出的效率。
2.操作的便捷:處理流可能提供了一系列便捷的方法來一次輸入輸出大批量的內容,而不是輸入/輸出一個或多個水滴處理流可以嫁接在任何已存在的流的基礎上。
3.節點流和處理流的分類(很關鍵的圖),源自“瘋狂Java講義”