用Reader模拟BufferedReader的readerLine()功能
readLine():一次读取一个文本行。根据换行符判断是否结束,只返回内容,不返回换行符
代码如下:
public class MyBufferedReader {
private Reader r;
public MyBufferedReader(Reader r) {
this.r = r;
}
public String readLine() throws IOException {
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) { //为防止数据丢失,判断sb的长度是否大于0
return sb.toString();
}
return null;
}
public void close() throws IOException {
this.r.close();
}
}