IO流之处理流与节点流

IO流之处理流与节点流
  • 节点流

节点流可以从一个特定的数据源读写数据

  • 处理流

处理流也叫包装流,是“连接”在已存在的流之上,且不是单指一个具体的数据源,为程序提供更为强大的读写功能。

ackage com.io.writer;

public class Test_ {
    public static void main(String[] args) {

        BufferedReader_ bufferedReader_ = new BufferedReader_(new FileReader_());
        bufferedReader_.readFiles(10);

        BufferedReader_ bufferedReader_1 = new BufferedReader_(new StringReader_());
        bufferedReader_1.readString(5); 
    }
}



package com.io.writer;

public abstract class Reader_ {
    public  void readFile(){

    }
    public void readString(){

    }

//上面是写了两个方法,也可以使用read方法统一管理,在调用时利于对象动态绑定机制,绑定到对应的子类即可
//所以上面两个可以写成一个,即:
//public abstract void read()
}



package com.io.writer;

public class FileReader_ extends Reader_ {
    public void readFile(){
        System.out.println("对文件进行读取");
    }
}



package com.io.writer;
//节点流
public class StringReader_ extends Reader_{
    public void readString(){
        System.out.println("读取字符串");
    }
}



package com.io.writer;
//处理流
public class BufferedReader_ extends Reader_{

    private Reader_ reader_;//属性是Reader_类型

    public BufferedReader_(Reader_ reader_){
        this.reader_=reader_;

    }
    //让方法更加灵活,多次读取文件
    public void readFiles(int num){
        for (int i=0;i<num;i++){
            reader_.readFile();
        }
    }
    //扩展:readString方法,批量处理字符串数据
    public void readString(int num){
        for(int i=0;i<num;i++){
            reader_.readString();
        }
    }

}

 

 

posted @ 2022-04-29 22:13  胖虎9  阅读(34)  评论(0编辑  收藏  举报