只是代码截取了一部分
//模拟一个带行号的缓冲区对象
import java.io.*;
class dhh
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
LineNumberReader dq=null;
//MyLineNumberReader dq=null;
try
{
dq=new LineNumberReader(new FileReader("d://JAVA知识整理.txt"));
//dq=new MyLineNumberReader(new FileReader("d://JAVA知识整理.txt"));
String str=null;
while ((str=dq.readLine())!=null)
{
sop(dq.getLineNumber());
//sop(str);
}
}
catch (IOException e)
{
}
}
}
//开始模拟带行号的缓冲区
class MyLineNumberReader extends Reader
{
private Reader r;
MyLineNumberReader(Reader r)
{
this.r=r;
}
public String readLine()throws IOException
{
/*第一种
BufferedReader ls=new BufferedReader(r);
return ls.readLine();
*/
//第二种
StringBuilder rq=new StringBuilder();
int a=0;
while ((a = r.read())!=-1)
{
if (a=='\r')
{
continue;
}
if (a=='\n')
{
return rq.toString();
}
else
rq.append((char)a);
}
return null;
}
public int myGetLineNumber()throws IOException
{
return 0;
}
public void close()throws IOException
{
r.close();
}
public int read(char[] cbuf, int off, int len)throws IOException
{
return r.read(cbuf,off,len);
}
}
这是全部代码 还没写完,那个问题已经搞明白了 ,汗还是给忘了 |