Java 处理流概述(简单模拟数据流)

处理流:

是对一个已存在的流进行处理和封装,通过所封装的流的功能调用实现对数据的操作。如Buffered缓冲流。处理流的构造方法总是要带一个其他的流对象做参数,通俗的说就是包在别的流外面的流,类似于包在管道外面的管道。

作用:增强功能、提供性能,基于节点流进行操作。

Java 处理流概述(简单模拟数据流)_第1张图片

Java 处理流概述(简单模拟数据流)_第2张图片

 处理流的实现思想:

/*
   简单模拟处理流的操作过程。
 */
public class helloworld {
    public static void main(String[] args) {
        _Closeable is = new _InputStream();//具体组件
        _Closeable bis = new _BufferedInputStream(is);//处理流对组件进行处理
        System.out.println(is.data()+"大小——>"+is.size());
        System.out.println(bis.data()+"大小——>"+bis.size());
    }
}
//抽象组件——类比Closeable。
interface _Closeable{
    String data();
    int size();
}
//具体组件——类比InputStream、OutputStream。
class _InputStream implements _Closeable{
    @Override
    public String data() {
        String datas = "处理前的数据";
        return datas;
    }
    @Override
    public int size() {
        return 18;
    }
}
//抽象装饰类——类比FilterInputStream、FilterOutputStream(流的内部类)。
abstract class 进行处理 implements _Closeable{
    private _Closeable _close;
    public 进行处理(_Closeable _close) {
        this._close = _close;
    }
    public void 进行处理() {
        //基于目的对组件进行各种处理。
    }
    @Override
    public String data() {
        return this._close.data();
    }
    @Override
    public int size() {
        return this._close.size();
    }
}
//具体装饰类——类比BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter。
class _BufferedInputStream extends 进行处理{
    public _BufferedInputStream(_Closeable is) {
        super(is);
    }
    public int size() {
        return (super.size()+15);
    }
    public String data() {
        return super.data()+"经过处理后";
    }
}

你可能感兴趣的:(JavaSE)