import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class test {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("buf.txt");
MyLineNumberReader mylnr=new MyLineNumberReader(fr);
String line=null;
while((line=mylnr.myReadLine())!=null){
System.out.println(mylnr.getLineNumber()+":"+line);
}
mylnr.myClose();
}
}
//带行号的缓冲区
class MyLineNumberReader {
private Reader r;
private int lineNumber;
MyLineNumberReader(Reader r) {
this.r = r;
}
public String myReadLine() throws IOException {
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);
}
if (sb.length() != 0)
return sb.toString();
return null;
}
public void setLineNumber(int lineNumber) {
this.lineNumber = lineNumber;
}
public int getLineNumber() {
return lineNumber;
}
public void myClose() throws IOException {
r.close();
}
}
模拟一个带行号的缓冲区对象。
最新推荐文章于 2021-01-22 23:05:23 发布