1.二者之间的区别和联系
节点流:可以从一个特定的数据源读写数据。
处理流:在已经存在的流的基础之上,为程序提供更强大的读写功能。
2.处理流的功能
处理可以根据传入对象的不同,进而可以访问更详细的数据源,比如数组,文件等
3.代码演示
主要模拟BufferReader源码的基本功能和一种设计模式--修饰器设计模式
代码块1:创建BufferReader_类,继承抽象类Reader_,里面的构造方法可以传入不同的类型比如FileReader_和StringReader_这两个类,通过可以调用BufferReader_中的不同的来达到对应数据源的操作。简单点来说就是在创建BufferReader_这个类的时候,传入对应的数据源对象,然后根据传入的对象,调用相应的方法。
public class BufferReader_ extends Reader_{
private Reader_ reader_;
public BufferReader_(Reader_ reader_) {
this.reader_ = reader_;
}
//多次读取文件
public void readFile_1(int num){
for (int i = 0; i < num; i++) {
reader_.Reader_File();
}
}
//多次操作字符串
public void readFile_2(int num){
for (int i = 0; i < num; i++) {
reader_.readString();
}
}
}
import java.io.Reader;
public class FileReader_ extends Reader_ {
public void Reader_File() {
System.out.println("====读取文件====");
}
}
public abstract class Reader_ {
public void Reader_File(){}
public void readString(){}
}
public class StringReader_ extends Reader_{
public void readString() {
System.out.println("====读取字符串====");
}
}
public class test1 {
public static void main(String[] args) {
BufferReader_ bufferReader_ = new BufferReader_(new FileReader_());
BufferReader_ bufferReader_1 = new BufferReader_(new StringReader_());
bufferReader_.readFile_1(5);
bufferReader_1.readFile_2(5);
}
}