Java-BufferReader中的readLine()方法
BufferReader:字符读取流缓冲去,在BufferReader中有一个readLine()方法,表示每次读取一行数据。
readLine()方法返回包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null,即返回的数据为回车符自己的数据,不包括回车符。
readLine()方法的原理:
readLine()方法无论读取一行数据还是读取多个字符,最终调用的方法还是读取字符流(Reader)中的read()方法,一次读取一个字符。
import java.io.FileReader;
import java.io.IOException;
/*
-
模拟实现BufferedReader中的readLine()方法
-
*/
public class MyBufferedReader {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();
}
}
}
————————————————
版权声明:本文为****博主「tuanjie108」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/peituanjie/article/details/17421773