在java中會看到很多inputstream和outputstream的子類,讓人眼花繚亂。但是處於低層的主要分爲四類:
- 文件流:FileInputStream,FileOutputStrean(java網絡處理中返回的流是文件流的子類)
- 數組流:ByteArrayInputStream,ByteArrayOutputStream
- 字符串流:StringBufferInputStream(目前我在jdk1.8看到已經棄用)
- 管道流:PipedInputStream,PipedOutputStream
也就是說java中io主要是面向這四類介質進行輸入輸出的,但我們對其中一個進行輸入輸出時就要用到上面相對應的流。例如,要讀取文件,肯定要用到FileInputStream,不能用ByteArrayInputStream。因而我們把這種直接和介質進行交互的流稱爲介質流。當有新的介質我們沒有相應的流去和介質進行交互時,我們就必須寫新的介質流去和介質進行交互