一.
如果按照之前的说法,缓冲区就是数组的话,那么写bufr.read(buf)就不能理解。这句话只能看成bufr这个缓冲区对象,采用read方法,将数据读到buf中,而不是缓冲区对象bufr读取buf数组。
缓冲区对象有自己具体的方法,而不是继承父类的read读取单个字符的方法,缘于原理的不同。
readline方法相较于缓冲区对象自己特有的read单个字符的方法,更为优化了。以前是将硬盘中的数据都读到内存的缓冲区数组中,现在是做了限定,都满一行就操作一行。
对于连续读取单个字符,后以字符串输出的形式,完全可以用StringBuilder或着StringBuffer来操作。StringBuilder底层是数组,而且是可变长度并返回的是字符串。