day19/MyBufferedReaderDemo.java

来源:互联网 发布:中银淘宝卡办理 编辑:程序博客网 时间:2024/05/19 18:14
/*明白了BufferedReader类中特有的方法readLine的原理后,可以自定义一个类中包含一个功能和readLine一致的方法。来模拟一下BufferedReader*/import java.io.*;class MyBufferedReader{private FileReader fr;MyBufferedReader(FileReader fr){this.fr = fr;}//可以一次读一行数据的方法public String myReadLine()throws IOException{//定义一个临时容器。原BufferedReader封装的是字符数组。//为了演示方便,定义一个StringBuilder容器。因为最终还是要数据变成字符串。StringBuilder sb = new StringBuilder();int ch=0;while((ch=fr.read())!=-1){if(ch=='\r')continue;if(ch=='\n')return sb.toString();elsesb.append((char)ch);}//当文本最后一行末尾没有敲回车时,上面的while循环就没有把最后一行返回去,但是内容存进了StringBuilder容器。if(sb.length()!=0)return sb.toString();return null;}public void myClose()throws IOException{fr.close();}}class MyBufferedReaderDemo{public static void main(String[] args) throws IOException{FileReader fr = new FileReader("demo.txt");MyBufferedReader myBufR =  new MyBufferedReader(fr);String line=null;while((line=myBufR.myReadLine())!=null){System.out.println(line);}myBufR.myClose();}}

0 0
原创粉丝点击