readline()方法底层也是调用了read()方法,然后把由read()方法读到的字节存放到一个数组里面,这样的话效率会高一点。其实我们可以模拟一下readline()方法,但此处不是用的数组存放字节,而使用的StingBuilder 缓冲器 代码如下:
public String myReadLine() throws Exception
{
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = fr.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sb.toString();
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
当调用myReadline()方法是模拟了readline()的方法。其实也可以查看java源代码。 |