目錄:系統學習 Java IO---- 目錄,概覽html
這兩個流的做用是:「封裝其它的輸入流,併爲它們提供額外的功能」
他們的直接子類有:
學習
BufferedInputStream 的做用就是爲「輸入流提供緩衝功能,以及 mark() 和 reset() 功能」
DataInputStream 是用來裝飾其它輸入流,它「容許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型」
接下來咱們會對具體每個展開分析的。this
FilterInputStream 是用於實現本身的過濾輸入流的基類。 基本上它只是覆蓋 InputStream 中的全部方法,沒有任何特殊行爲。
在其內部對全部方法的全部調用傳遞給包裝的一個 InputStream 對象調用。code
在其構造器中將一個 InputStream 對象傳遞給 FilterInputStream ,將參數 in 分配給字段 this.in,以便記住它供之後使用,以下所示:
protected FilterInputStream(InputStream in);
public int read() throws IOException {return in.read(); }
我我的認爲這個類沒有什麼目的,也沒有看到這個類在 InputStream 中添加任何改變行爲。htm
一樣, FilterOutputStream 是用於實現本身的過濾輸出流的基類。 基本上它只是覆蓋了 OutputStream 中的全部方法。對象
也沒法看到這個類實際上添加或更改了 OutputStream 中的任何行爲。 若是要繼承此類,則能夠直接繼承 OutputStream 類,避免多一層沒用的類。blog