J2SE中 装饰设计模式之用自定义类去实现BufferedReader类的功能

          

需求:

  自己构造一个类似BufferedReader的类。

注意,它的出现是基于流并增强了流的功能。这也是一种设计模式的体现:装饰设计模式,对一组对象进行功能的增强。

定义自己的类:MyBufferedReader.java去实现BufferedReader类的功能

 

MyBufferedReader.java

package bufferedstream;

 

import java.io.IOException;

import java.io.Reader;

 

public class MyBufferedReader {

   Reader r;

       publicMyBufferedReader(Reader r){

              this.r= r;

       }

       publicString myReaderLine() throws IOException{

              StringBuffersb = new StringBuffer();

              intlen = 0;

              while((len = r.read())!= -1) {

                     if(len== '\r')

                            continue;

                     if(len== '\n')

                            returnsb.toString();

                     else

                     sb.append((char)len);

              }

        if(sb.length()!=0){

              return sb.toString();

        }

              returnnull;

             

       }

       publicvoid myClose() throws IOException{

              r.close();

       }

      

 

}


定义一个测试类:去测试该自定义类是否满足要求。


TestMyBufferedReader.java

TestMyBufferedReader.java 

 packagebufferedstream;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

 

public class TestMyBufferedReader {

 

 

       publicstatic void main(String[] args) throws IOException {

       FileReader fr = new FileReader(new File("D:/buffered.txt"));

              MyBufferedReadermbr = new MyBufferedReader(fr);

              Stringcontent = null;

              while((content = mbr.myReaderLine())!= null) {

                     System.out.println(content);

              }

             

              mbr.myClose();

       }

 

}


这样一个自己定义的带有缓冲功能的字符输入流类就创建好了,这体现了装饰设计模式。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值