java中readLine方法为什么有的行读不到
private FileReader fr = null;
public MyBufferedReader(FileReader fr) {
this.fr = fr;
}
public String readLine() throws IOException {
// 定义一个临时容器,用于存放读取的数据
StringBuilder sb = new StringBuilder();
// 定义一个字符,用于判断是否读取到文件末尾
int ch = 0;
while ((ch = fr.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 close() throws IOException{
if(fr != null){
fr.close();
}
}
}