自定义装饰类BufferedReader

来源:互联网 发布:数字网络用语 编辑:程序博客网 时间:2024/05/16 09:47
调用自定义装饰类读取文件
public static void test2()throws Exception{MyBuffer br = new MyBuffer(new FileReader(new File("IOTest11.java")));String line = null;while((line = br.myReadLine()) != null){System.out.println(line);}br.close();}


自定义的装饰类

class MyBuffer{private FileReader fr;MyBuffer(FileReader fr){this.fr = fr;}public String myReadLine()throws Exception{StringBuilder sb = new StringBuilder();int num = 0;while((num = fr.read()) != -1)//只有没有到达末位{//System.out.println(num);//Thread.sleep(2000);if((char)num == '\r'){continue;}if((char)num == '\n'){return sb.toString();}sb.append((char)num);//System.out.println("StringBuilder=" + sb);}//当读到最后一行的数据的时候if(sb.length()!=0){                return sb.toString();          }  return null;}public void close()throws Exception{fr.close();}}
步骤:

(1)将FileReader传入其构造函数

(2)自定义readLine()、close()等方法,这些方法实际上都是在FileReader的基础上进一步的功能加强。


通过上诉操作可以知道装饰模式都会有一个操作原型,而其出现是对原有对象的某些功能进行进一步的封装,增强其功能,进一步提高效率。






0 0
原创粉丝点击