A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.IOException;
import java.io.Reader;

/*
* 用装饰设计模式自己模拟BufferedReader类
* 模拟close()方法,readLine()方法
*/
public class MyBufferedReader {
        private Reader r;
        
        public MyBufferedReader(){}
        
        public MyBufferedReader(Reader r) {
                this.r = r;
        }
        
        //readLine()方法如何模拟呢?
        public String myReadLine() throws IOException{
               
                StringBuilder sb = new StringBuilder();
                int ch = 0;
                while((ch=r.read())!=-1){
                        if(ch=='\r'){
                                continue;
                        }
                        
                        if(ch=='\n'){
                                return sb.toString();
                        }
                        else{
                                sb.append((char)ch);
                        }
                }
               
                //为了避免数据的丢失
                if(sb.length()>0){
                        return sb.toString();
                }
               
                return null;
        }
        
        public void myClose() throws IOException{
                r.close();
        }
}
个人对装饰设计模式的总结:它对程序进行了功能的增强,比继承更灵活些

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马