import java.io.*;
/*
* 了解了BufferedReader类中特有方法readLine的原理后,
* 可以自定义一个类中包含一个功能和readLine一致的方法
* 来模拟一个BufferedReader。
*/
class MyBufferedReader
{
private FileReader fr;
MyBufferedReader(FileReader fr)
{
this.fr = fr;
}
public String myReadLine() throws IOException
{
//定义一个临时容器,原BufferReader封装的是字符数组。
//这里我们可以定义一个StringBuilder容器,因为最终还是要将数据转换为字符串。
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = fr.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;
}
public void myClose()throws IOException
{
fr.close();
}
}
public class MyBufReader
{
public static void main(String[] args)throws IOException
{
FileReader fr = new FileReader("e:\\buf.txt");
MyBufferedReader mbr = new MyBufferedReader(fr);
String line = null;
while((line = mbr.myReadLine())!=null)
{
System.out.println(line);
}
mbr.myClose();
}
}
|
|