1. 程式人生 > >系統學習 Java IO (八)----裝飾流 FilterInputStream/FilterOutputStream

系統學習 Java IO (八)----裝飾流 FilterInputStream/FilterOutputStream

目錄:系統學習 Java IO---- 目錄,概覽

這兩個流的作用是:“封裝其它的輸入流,併為它們提供額外的功能”
他們的直接子類有:

BufferedInputStream 的作用就是為“輸入流提供緩衝功能,以及 mark() 和 reset() 功能”
DataInputStream 是用來裝飾其它輸入流,它“允許應用程式以與機器無關方式從底層輸入流中讀取基本 Java 資料型別”
接下來我們會對具體每一個展開分析的。

FilterInputStream 是用於實現自己的過濾輸入流的基類。 基本上它只是覆蓋 InputStream 中的所有方法,沒有任何特殊行為。
在其內部對所有方法的所有呼叫傳遞給包裝的一個 InputStream 物件呼叫。

在其構造器中將一個 InputStream 物件傳遞給 FilterInputStream ,將引數 in 分配給欄位 this.in,以便記住它供以後使用,如下所示:
protected FilterInputStream(InputStream in);
public int read() throws IOException {return in.read(); }
我個人認為這個類沒有什麼目的,也沒有看到這個類在 InputStream 中新增任何改變行為。

同樣, FilterOutputStream 是用於實現自己的過濾輸出流的基類。 基本上它只是覆蓋了 OutputStream 中的所有方法。

也無法看到這個類實際上新增或更改了 OutputStream 中的任何行為。 如果要繼承此類,則可以直接繼承 OutputStream 類,避免多一層沒用的類。