import java.io.*;/*class MyLineNumberReader extends MyBufferedReader
{
private int linenumber;
MyLineNumberReader(Reader r)
{
super(r);
}
public void setLineNumber(int linenumber)
{
this.linenumber = linenumber;
}
public int getLineNumber()
{
return linenumber;
}
public String MyreadLine() throws IOException
{
linenumber++;//每读一行,行数就自加一次
return super.MyreadLine();
}
}*/
classMyLineNumberReader
{privateReader r;private intlinenumber;
MyLineNumberReader(Reader r)
{this.r =r;
}public void setLineNumber(intlinenumber)
{this.linenumber =linenumber;
}public intgetLineNumber()
{returnlinenumber;
}public String MyreadLine() throwsIOException
{
linenumber++;//每读一行,行数就自加一次
StringBuilder sb = newStringBuilder();int ch = 0;while((ch = r.read())!=-1)
{if(ch=='\r')continue;if(ch=='\n')returnsb.toString();elsesb.append((char)ch);
}if(sb.length()!=0)returnsb.toString();return null;
}public void Myclose() throwsIOException
{
r.close();
}
}classMyLineNumberReaderDemo
{public static voidmain(String[] args)
{
FileReader fr= null;
MyLineNumberReader myl= null;
String str= null;try{
fr= new FileReader("MyBufferedReaderTest.java");
myl= newMyLineNumberReader(fr);//myl.setLineNumber(100);//设置第一行从101行开始
while((str = myl.MyreadLine())!=null)
{
System.out.println(myl.getLineNumber()+":"+str);
}
}catch(IOException e)
{
System.out.println("流读入异常!");
}finally{try{
myl.Myclose();
}catch(IOException e)
{
System.out.println("流关闭异常!");
}
}
}
}