String readLine(boolean ignoreLF) throws IOException {
//行(hang)数据的缓冲s
StringBuffer s = null;
int startChar;
synchronized (lock) {
/*确保被bufferedReader包装的输入流没有关闭*/
ensureOpen();
/* 如果 读到'\r',skipLF置为true,
* 这是skip()方法里面的部分代码,它展示了通过skipLF来忽略'\n'
* if (skipLF) {
skipLF = false;
if (cb[nextChar] == '\n') {
nextChar++;
}
}
*ignoreLF一直就是false
**/
boolean omitLF = ignoreLF || skipLF;
/* bufferLoop主要是不断地遍历底层的数组cb,并取两个换行符之间的数据付给行缓冲s。当底层数组遍历完要用fill()把数据从流中填充到cb,直到流的末尾
*charloop,主要是遍历缓冲数组cb,以确定'\n','\r'的位置
nextChar:下次读取缓冲字符数组cb的位置,
nChars:缓冲字符数组cb的length
*/
bufferLoop:
for (;;) {
//1、如果缓冲数组的数据不
bufferedReader中的readLine()源码解析
最新推荐文章于 2023-04-14 22:19:19 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)