java基础学习心得——自定义类实现BufferedReader功能

来源:互联网 发布:php程序员岗位职责 编辑:程序博客网 时间:2024/06/05 15:37

BufferedReader属于java.io.Reader的子类,不仅实现了FileReader的功能,还增加了缓冲区,提高了程序的读写效率。

下面,自定义类myBufferedReader模拟实现BufferedReader的功能:

class myBufferedReader{private Reader r;myBufferedReader(Reader r){this.r = r;}public String myReadLine()throws IOException{int ch;StringBuilder sb = new StringBuilder();while((ch=r.read())!=-1){if(ch == '\r')continue;else if(ch == '\n')return sb.toString();elsesb.append((char)ch);}if(sb.length()!=0)return sb.toString();return null;}public void myClose()throws IOException{r.close();}}
定义的myBufferedReader类,提供了构造函数、myReadLine方法和myClose()方法。

通过构造函数可向类中传入一个Reader类的子类对象,myClose()方法可关闭流对象。

在方法myReadLine()中,定义了一个缓冲区sb,每读一个字符,就将字符保存到缓冲区中,当读完一行后,将改行的值返回。

while循环外的if语句是对r对象的最后一行单独处理,当最后一行有内容但没有换行时,这条语句能把最后一行的内容给返回

0 0