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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张成龙 中级黑马   /  2012-4-28 15:12  /  2578 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

readLine的原理是识别回车符,在windows系统中回车就是\r\n,
如果readLine读取文件的内容中包括\r\n这两个字符,读到这两个字符时为什么不会换行呢?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

4 个回复

正序浏览
上面讲的都很对,readLine返回的内容是遇到\r\n之前的内容,因为是读一行吗,当读到\r\n时就代表到了本行末尾该返回了,你的意思是不是文本内容里含有“\r\n”读到这里为什么没换行?因为\r\n在文本里实际上只是以换行的形式存在,而如果是这样的形式存在,比如“123abc\r\n456”,readLine读取的时候会把每一个(不论中英文还是符号)都按一个字符读取,所以其中的\r\n其实是4个字符('\\','r','\\','n'),而不是2个,那么读到这是不会换行的

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
在windows系统下,编辑文本的换行标记是\r\n当调用readline()方法读到\r的时候就会识别出这个一个换行的标记,所以并不会将其返回而是继续往下读,当读到\n的时候,就会识别出这是本行的末尾了,但是不读取\n,而是换到下一行继续读。        就这样反复的读下去,直到读完位置。
readline()方法实际就是read()的加强,还是用的read()方法,是把读取的一个个字节放在一个数组中,然后一块返回给调用端。
回复 使用道具 举报
它返回的读取到的内容里并不包含\r\n,它把这两个符号省略了,只是作为结束标记。
不知道如果返回的内容后面加上\r\n,会不会自动换行呢?没有试验,下来试试。。
回复 使用道具 举报
在文件中写\r\n这些都是字符不是byte
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马