中易网

java io流中装饰器和过滤器的区别

答案:3  悬赏:10  
解决时间 2021-04-28 05:09
  • 提问者网友:冥界祭月
  • 2021-04-27 08:34
我的理解是这样的,IO流中所有的流处理都是基于节点流的基础之上的,在这个节点流的基础上做的任何扩展都可以理解成是序列化操作。小到int,String等基本数据类型的写进写出,大到对象,JPG等的写进写出,都是序列化操作,只不过是复杂程度多少而已,
是不是在IO流中的装饰器和过滤器其实都是一个概念啊?就是把一个复杂的东西序列化或者反序列化成byte字节呢?
因为有些书上总是把流分成是字节流,什么字符流,其实字符流就是一个对字节流的一个序列化过程,对吗?
题目有点长,请耐心快完,好吗?
最佳答案
  • 二级知识专家网友:青灯壁纸妹
  • 2021-04-27 09:31
楼主应该是领会了java io的精神的。在我以前学java的时候,与节点流相对的叫做包装流。
分类的依据就是节点流是直接操作IO节点如ByteArray, File, Socket等等,所以相应的InputStream/OutputStream就是节点流。
包装流是在java IO 管道机制中用来处理节点流的其他流对象,像各种Reader, Writer, Printer等等。他们的作用是在节点流基本功能至上提供扩展的功能,就像你说的对象、图片、字符串等的对应特殊操作。
java IO中还有另一种分类就是:字节流与字符流。字节流顾名思义就是直接操作byte二进制数据;字符流则直接操作文本数据。例如:ByteArrayInputStream, ObjectOutputStream等是字节流;BufferedReader, OutputStreamWriter等等是字符流。注意这个分类与上面节点流/包装流的分类不是互斥的,只是两种不同的分类体系。节点流通常都是字节流;而一个流对象可以既是包装流又是字符流,比如刚才说的OutputStreamWriter。
其实流的各种分类只不过是使我们更方便的理解IO包中类或对象的组织方式而已。不一定非要死抠字面。
B.T.W.
楼主所说的装饰器应该与IO中使用频繁的Decorator模式有关。而过滤器可能只是包装流的不同说法。当然也不排除你的资料里它可能是有特指的,比如文件操作中的FileFilter等等。
回答也有点长,请耐心看完,好吗?
全部回答
  • 1楼网友:茫然不知崩溃
  • 2021-04-27 12:08
其实字符流就是一个对字节流的一个编码/解码 再看看别人怎么说的。
  • 2楼网友:绝望伪装
  • 2021-04-27 10:57
过滤器能够对目标资源的请求和响应进行截取。   装饰器是指在一个对象的外围创建一个称为装饰器的封装,动态地给这个对象添加一些额外的功能。   原理:在一个对象的外围创建一个称为装饰器的封装,动态地给这个对象添加一些额外的功能。以对客户端透明的方式扩展对象的功能。 装饰器模式又称为包裹模式(wrapper),因为一个具体装饰器都将下一个具体装饰器或具体构件类包裹起来。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息