现在io流都快学完了,有些问题还是没弄明白,比如filereader和filterreader有什么区别,filewriter和filterwriter有什么区别,还有fileinputstream和fileterinputstream有什么区别,前缀是“filter”的流有什么作用,前缀为“filter”不是缓冲区么,前缀为“buffered”也是缓冲区,他们又有什么区别!希望明白的能授之以惑!

解决方案 »

  1.   

    以filter开头的是装饰类,这是个装饰器设计模式,楼主去看这模式就明白了
      

  2.   

    不一定从filter扩展的才是装饰类,你说的buffered开头的我记着有的就不是,字符流那块的有个filter更是奇怪,印象中就一个子类,所以这io有点不是很“规整”,lz记住含义的完了
      

  3.   

    继承filter相关流的属于过滤流,一般直接操作文件(或源)的流是节点流,就是和你需要的源对接的,fileInputStream就是这样,但是filter开头或是其子类都是其过滤的作用的,也就是在原始功能的节点流的基础上扩展一下功能的,比如buffered就是增加一个缓冲功能data开头的就是增加特定的数据的读写功能,这些都是是用装饰模式实现的,
      

  4.   

    补充下buffered开头的也是过滤流,是filter相关流的子类