A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程立彬 黑马帝   /  2011-11-24 20:53  /  16887 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程立彬 于 2011-11-26 17:32 编辑

BufferedReader的readLine()方法的结束条件,是返回空值,但如果是文本中间有一行是空的,那么这个条件怎么判断,如果按照原来的判断方法,这个空行之后的数据就不能够读了,因为满足了循环中终止的条件,求解释!

8 个回复

倒序浏览
public String readLine()  throws IOException
    读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或(\r\n)。
   注意如果读到文件结尾则自动停止。如果到达文件末尾则返回null。
回复 使用道具 举报
冯敏 黑马帝 2011-11-24 21:02:17
藤椅
BufferedReader的readLine()方法的结束条件是回车符
回复 使用道具 举报
循环用readLine没有读到文件结尾是不会停下来不读的。
回复 使用道具 举报
hou3172568 发表于 2011-11-24 21:01
public String readLine()  throws IOException
    读取一个文本行。通过下列字符之一即可认为某行已终止 ...

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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马