黑马程序员技术交流社区

标题: BufferedReader的readLine()方法的结束条件??? [打印本页]

作者: 程立彬    时间: 2011-11-24 20:53
标题: BufferedReader的readLine()方法的结束条件???
本帖最后由 程立彬 于 2011-11-26 17:32 编辑

BufferedReader的readLine()方法的结束条件,是返回空值,但如果是文本中间有一行是空的,那么这个条件怎么判断,如果按照原来的判断方法,这个空行之后的数据就不能够读了,因为满足了循环中终止的条件,求解释!
作者: 侯伟浩    时间: 2011-11-24 21:01
public String readLine()  throws IOException
    读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或(\r\n)。
   注意如果读到文件结尾则自动停止。如果到达文件末尾则返回null。
作者: 冯敏    时间: 2011-11-24 21:02
BufferedReader的readLine()方法的结束条件是回车符
作者: 侯伟浩    时间: 2011-11-24 21:03
循环用readLine没有读到文件结尾是不会停下来不读的。
作者: 程立彬    时间: 2011-11-24 21:05
hou3172568 发表于 2011-11-24 21:01
public String readLine()  throws IOException
    读取一个文本行。通过下列字符之一即可认为某行已终止 ...

你好,首先感谢你回答我的问题,其次,我想你没有理解我的意思,我的意思是按行读取而不是按字符读取,按行读取不是应该判断行是否为空吗?我的问题是如果文本中间有空行怎么办???
作者: 侯伟浩    时间: 2011-11-24 21:19
只要没读到文件结尾是不会停下来的,它会把空行也读下来,接着再去读下一行。建议你编一个程序试试就会明白了。
作者: 刘涛    时间: 2011-11-24 21:38
readLine方法是BufferedReader类的方法,此方法是对字符进行操作的类,如果到达流末尾,则返回null,
此方法在无法直接使用字符编码的流中无法使用,在网络传输的过程中Http协议传输的字节流可能是任何形式的数据,可能是某种编码的字符文本或者是二进制的其它文件如图片、视频、音频等。

作者: 刘涛    时间: 2011-11-24 21:38
    readLine方法是BufferedReader类的方法,此方法是对字符进行操作的类,如果到达流末尾,则返回null,
此方法在无法直接使用字符编码的流中无法使用,在网络传输的过程中Http协议传输的字节流可能是任何形式的数据,可能是某种编码的字符文本或者是二进制的其它文件如图片、视频、音频等。

作者: 强子    时间: 2011-11-24 22:03
首先  BufferedReader 使用的时候要穿入一个 Reader  
所以其无论读一行获取多少个字符,其实都是在用Reader的read()方法一个一个的读
当读到\r\n的时候,一次readLine()结束
而读到文件末尾  即 读到 null(注意 不是“”,“null”或者其他符号而是真正的没东西了)时 返回null
结束




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2