程序员潇然 发表于 2022-8-26 10:55:01

JavaIO之FilterInputStream FilterOutputStream(十一)

FilterInputStreamFilterOutputStream都是装饰器模式中的Decorator抽象装饰角色
他们继承了各自的抽象构建InputStream 和OutputStream

!(data/attachment/forum/202208/26/105159bk5t9mhi9x5jxkth.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

他们内部都包含了一个抽象构建

!(data/attachment/forum/202208/26/105210vfad3smsnep98c11.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")



FilterInputStreamFilterOutputStream既然作为抽象的装饰器角色存在
所以他们也不太可能有什么实质性的方法

FilterInputStream中的所有方法 都使用的是内部的in来转发调用

!(data/attachment/forum/202208/26/105230ej6ijqmqqjrrmfff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")


FilterOutputStream也是一样,几乎所有的请求都是转发给了内部的out对象

!(data/attachment/forum/202208/26/105242hm8z32ml8z96662z.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

不过有一个特殊的地方
内部的三个参数版本的write 并没有调用out对象的三个参数的write
仍旧是调用一个参数的write


注释中有明确提示Subclasses of FilterOutputStream should provide a more efficient implementation of this method.

子类应该重写此方法以提供更好地实现

!(data/attachment/forum/202208/26/105420mffeoaju5gcfutej.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

!(data/attachment/forum/202206/16/141330jha7st9soow8772i.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "common_log.png")
`转载务必注明出处:程序员潇然,疯狂的字节X,https://crazybytex.com/thread-147-1-1.html `
页: [1]
查看完整版本: JavaIO之FilterInputStream FilterOutputStream(十一)