import java.io.*;
class MyBufferedReader
{
private FileReader r;
private int LineNumber;
MyBufferedReader(FileReader r)
{
this.r=r;
}
//设置行号
public void setLineNumber(int LineNumber)
{
this.LineNumber=LineNumber;
}
//获取行号
public int getLineNumber()
{
return this.LineNumber;
}
public String MyReadLine() throws IOException
{
//每读一次,行号添加1
LineNumber++;
//定义一个临时容器,存储一行数据
StringBuilder sb=new StringBuilder();
int ch=0;
while((ch=r.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
//判断最后一行没有换行符\n的问题
if(sb.length()!=0)
return sb.toString();
return null;
}
public void MyClose() throws IOException
{
r.close();
}
}
class MyBufferedReaderDemo
{
public static void main(String[] args) throws IOException
{
MyBufferedReader mybufr=new MyBufferedReader(new FileReader("abcd.txt"));
String line=null;
mybufr.setLineNumber(100);
while((line=mybufr.MyReadLine())!=null)
{
System.out.println(mybufr.getLineNumber()+":"+line);
}
mybufr.MyClose();
}
}
【java编程】IO类之复写BufferedReader里的readLine方法(带行号)
最新推荐文章于 2022-07-27 17:18:55 发布