本帖最后由 黑马-马磊 于 2013-10-30 13:44 编辑
老师在视频第20天的课程,有一节讲到了装饰类。
然后代码掩饰了readLine的代码为什么要继承Reader 希望能解释下
自己的各种理解很牵强,希望能够解惑!
具体代码如下:- import java.io.*;
- class MyBufferedReader extends Reader
- {
-
- private Reader r;
- MyBufferedReader(Reader r)
- {
- this.r = r;
- }
- //可以一次读一行数据的方法。
- public String myReadLine()throws IOException
- {
- //定义一个临时容器。原BufferReader封装的是字符数组。
- //为了演示方便。定义一个StringBuilder容器。因为最终还是要将数据变成字符串。
- 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;
- }
- /*
- 覆盖Reader类中的抽象方法。
- */
- public int read(char[] cbuf, int off, int len) throws IOException
- {
- return r.read(cbuf,off,len) ;
- }
- public void close()throws IOException
- {
- r.close();
- }
- public void myClose()throws IOException
- {
- r.close();
- }
- }
复制代码 |