//可以进InputStream 类 区分为目的和方法两类
//一般直接子类,都是目的不同的(A类),
// 如FileInputStream, #从文件中获得字节。
// ByteArrayInputStream #包含一个内存缓冲区,字节从中取出。
// ObjectInputStream #用来恢复被序列化的对象。
// PipedInputStream #管道输入流,读取管道内容。多和PipedOutputStream一起用于多线程通信。
// SequenceInputStream #是多种输入流的逻辑串联,从第一个输入流读取,直到最后一个输入流。
// StringBufferInputStream #读取的字节由字符串提供。
// 这里有一个特殊的子类, FilterInputStream 不作为直接子类使用,而作为父类给其他的装饰器子类[或者自定义的子类]继承;
//第二类为 增强的方法类型(增强功能)(B类); 典型的以FilterInputStream 为父类的代表的系列子类,都是装饰器模式
//(选择继承FilterInputStream 可以让装饰类更加专注于解决增强功能的问题)
//如BufferedInputStream;
// DataInputStream
//装饰器的目的,在于减少源类的数量,将A*B的数量改为A+B,这是比继承的优势;
//同时使Java类更加有层次性;
//FilterInputStream 典型的装饰模式类的父类,继承FilterInputStream 即可实现自己的装饰器
//即可实现一个装饰类(eg:BufferedInputStream);