在java中会看到很多inputstream和outputstream的子类,让人眼花缭乱。但是处于低层的主要分为四类:
- 文件流:FileInputStream,FileOutputStrean(java网络处理中返回的流是文件流的子类)
- 数组流:ByteArrayInputStream,ByteArrayOutputStream
- 字符串流:StringBufferInputStream(目前我在jdk1.8看到已经弃用)
- 管道流:PipedInputStream,PipedOutputStream
也就是说java中io主要是面向这四类介质进行输入输出的,但我们对其中一个进行输入输出时就要用到上面相对应的流。例如,要读取文件,肯定要用到FileInputStream,不能用ByteArrayInputStream。因而我们把这种直接和介质进行交互的流称为介质流。当有新的介质我们没有相应的流去和介质进行交互时,我们就必须写新的介质流去和介质进行交互