本帖最后由 michaelchen 于 2013-3-20 19:56 编辑
import java.io.*;
class MyBuffedReaderDemo
{public static void main(String[] args)throws IOException
{FileReader fr=new FileReader("buf.txt");
MyBufferedReader mbr=new MyBufferedReader(fr);//因为不知道要读取多少字符数据,所以我们往内存中添加数据的时候
//是需要动态添加的,这个时候想到了StringBuilder
String line=null;
while((line=mbr.myReadLine())!=null)
System.out.println(line);
}
}
class MyBufferedReader
{private FileReader r;
MyBufferedReader(FileReader r)
{this.r=r;}
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();
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();//在上面是根据文件结尾处是否有回车符来判断读取是否结束,如果没有回车符则无法打印
//而实际上是缓冲区中是否有数据是根据长度是否为0来判断,所以有此句
return null;
}
public void myClose()throws IOException
{r.close();
}
}
|