Lut*_*her 18 java inputstream outputstream stream
我一直在阅读InputStream,FileInputStream,ByteArrayInputStream以及它们的使用方式似乎非常清楚(输出流也是如此).
我正在努力的是理解FilterInputStream和FilterOutputStream的用法:
eri*_*son 19
FilterInputStream是Decorator模式的一个例子.
必须扩展此类,因为它的构造函数是protected.派生类将添加其他功能,但仍然暴露了一个基本接口InputStream.
例如,a BufferedInputStream提供对底层输入流的缓冲以使读取数据更快,并且在DigestInputStream消耗时计算数据的加密散列.
你可以使用此功能添加到现有的依赖于代码InputStream或OutputStreamAPI.例如,假设您使用了一些将数据保存到的库OutputStream.数据越来越大,因此您需要添加压缩.您可以修改应用程序,而不是修改数据持久性库,以便它"装饰"当前使用的流创建的流ZipOutputStream.该库将使用该流,就像它使用缺少压缩的旧版本一样.