以下内容来自marschen的java4android视频教程
主要内容
1.处理流使用实例.
2. 装饰者模式(Decorator)
3. 节点流与处理流之间的关系
BufferdReader介绍
public String raadLine()
throwsIOException
Reads a line of text. A line is condsidered to be berminated by any on e of a line
处理流使用实例.
import java.io.*;
class Test{
public static void main(String args[]){
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try{
fileReader = new FileReader("E:/marschen/fileop/form.txt");
bufferedReader = new BufferedReader(fileReader);
//String line = bufferedReader.readLine();
//System.out.println(line);
String line = null;
while(true){
line = bufferedReader.readLine();
if(line == null){
break;
}
System.out.println(line);
}
}
catch(Exception e){
System.out.println(e);
}
finally{
try{
bufferedReader.close();
fileReader.close();
}
catch(Exception e ){
System.out.println(e);
}
}
}
}
装饰者模式(Decorator) 下面通过5个类来说明 Worker类, Carpenter类,Plumber类, AWorker类,TestWorker类
Worker类,
//接口
interface Worker{
public void doSomeWork();
}
Carpenter类,
//木匠
class Carpenter implements Worker{
public void doSomeWork(){
System.out.println("修门窗");
}
}
Plumber类,
//水管工
class Plumber implements Worker{ //实现Worker
public void doSomeWork(){
System.out.println("修水管");
}
}
AWorker类
//水管工
class Plumber implements Worker{ //实现Worker
public void doSomeWork(){
System.out.println("修水管");
}
}
TestWorker类
class TestWorker{
public static void main(String args[]){
//生成一个A公司水管工对象
Plumber plumber = new Plumber();//先生成一个水管工
AWorker aWorker = new AWorker(plumber); //再生一个A公司员工,并且
aWorker.doSomeWork(); //把水管工传入
//生成一个A公司木匠对象
Carpenter carpenter = new Carpenter();//先生成一个木匠
AWorker aWorker2 = new AWorker(carpenter);//再生一个A公司员工,并且
aWorker2.doSomeWork(); //把木匠传入
}
}
总结
使用装饰者模式.
不使用继承.
处理流 BufferedReader 相当于工人 是装饰者
节点流 FileReader 相当于水管工 被装饰者.
被装饰者要作为对象传到装饰者里面去.
BufferedReader 可以装饰 读取文件,
还可以读取键盘
还可以读取网络.
处理流是给节点流添加功能.......
处理流还有很多,比如压缩流,管道流,,,,,,都是在节点流基础上扩展的.在上面添加一些新功能.