目录:系统学习 Java IO---- 目录,概览

这两个流的作用是:“封装其它的输入流,并为它们提供额外的功能”
他们的直接子类有:

BufferedInputStream 的作用就是为“输入流提供缓冲功能,以及 mark() 和 reset() 功能”
DataInputStream 是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型”
接下来我们会对具体每一个展开分析的。

FilterInputStream 是用于实现自己的过滤输入流的基类。 基本上它只是覆盖 InputStream 中的所有方法,没有任何特殊行为。
在其内部对所有方法的所有调用传递给包装的一个 InputStream 对象调用。

在其构造器中将一个 InputStream 对象传递给 FilterInputStream ,将参数 in 分配给字段 this.in,以便记住它供以后使用,如下所示:
protected FilterInputStream(InputStream in);
public int read() throws IOException {return in.read(); }
我个人认为这个类没有什么目的,也没有看到这个类在 InputStream 中添加任何改变行为。

同样, FilterOutputStream 是用于实现自己的过滤输出流的基类。 基本上它只是覆盖了 OutputStream 中的所有方法。

也无法看到这个类实际上添加或更改了 OutputStream 中的任何行为。 如果要继承此类,则可以直接继承 OutputStream 类,避免多一层没用的类。

系统学习 Java IO (八)----装饰流 FilterInputStream/FilterOutputStream的更多相关文章

  1. 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream

    目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...

  2. 系统学习 Java IO (十)----回退流 PushbackInputStream

    目录:系统学习 Java IO---- 目录,概览 PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定 ...

  3. 系统学习 Java IO (十一)----打印流 PrintStream

    目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...

  4. 系统学习 Java IO (九)----缓冲流 BufferedInputStream/BufferedOutputStream

    目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedIn ...

  5. 系统学习 Java IO ---- 目录,概览

    Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...

  6. 系统学习 Java IO (一)----输入流和输出流 InputStream/OutputStream

    目录:系统学习 Java IO ---- 目录,概览 InputStream 是Java IO API中所有输入流的父类. 表示有序的字节流,换句话说,可以将 InputStream 中的数据作为有序 ...

  7. 系统学习 Java IO (七)----字节数组流 ByteArrayInputStream/ByteArrayOutputStream

    目录:系统学习 Java IO---- 目录,概览 ByteArrayInputStream 如果数据存储在数组中,ByteArrayInputStream 可以很方便读取,它可以返回 InputSt ...

  8. 系统学习 Java IO (五)----使用 SequenceInputStream 组合多个流

    目录:系统学习 Java IO---- 目录,概览 SequenceInputStream 可以将两个或多个其他 InputStream 合并为一个. 首先,SequenceInputStream 将 ...

  9. 系统学习 Java IO (十二)----数据流和对象流

    目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用 ...

随机推荐

  1. WPF 的毛玻璃效果

    原文:WPF 的毛玻璃效果 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/76917519 其实很简 ...

  2. QT 调用 DLL 方法(三种方法)

    Qt调用DLL方法一:使用Win32 API 在显式链接下,应用程序必须进行函数 调用以在运行时显式加载 DLL.为显式链接到 DLL,应用程序必须:? 调用 LoadLibrary(或相似的函 数) ...

  3. 零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果

    原文:零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果 本章将教大家如何活用「Text On Path」,做出文绕图 ...

  4. 如何将任意文件固定在 Win10 的开始屏幕中

    虽然Wox和Launchy是我日常启动程序的主力方式,不过开始屏幕的图标方便归类,这是快速启动工具所不能提供的,因此我也会将最常用的程序在开始屏幕上分类固定. 最近需要将一个常用的批处理文件(*.ba ...

  5. CheckBox IsHitTestVisible

    <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"></Colu ...

  6. XF内容视图和框架

    <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http:/ ...

  7. 在WPF中引用WinForm的控件

     以ArcEngine为例: mapControl = new AxMapControl(); MapHost.Child = mapControl; //MapHost为WindowsFormHos ...

  8. laravel 报错SQLSTATE[HY000] [2002] No such file or directory

    在mac中执行php artisan migrate时报错 SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from i ...

  9. 【Gerrit】Performance Cheat Sheet

    首先说下做这件事情的主因,组内有人说Project repo sync有点慢,废话不多说,直接上图. 相关官方文档参考链接: 我的数据: ~/review_site/logs# fgrep " ...

  10. Win8 Metro(C#)数字图像处理--2.72图像噪声

    原文:Win8 Metro(C#)数字图像处理--2.72图像噪声  [函数名称]   噪声函数WriteableBitmap NoiseProcess(WriteableBitmap src,  ...