黑马程序员技术交流社区

标题: readLine的疑问 [打印本页]

作者: 张成龙    时间: 2012-4-28 15:12
标题: readLine的疑问
readLine的原理是识别回车符,在windows系统中回车就是\r\n,
如果readLine读取文件的内容中包括\r\n这两个字符,读到这两个字符时为什么不会换行呢?
作者: 沈样    时间: 2012-4-28 15:15
在文件中写\r\n这些都是字符不是byte
作者: 岳民喜    时间: 2012-4-28 23:02
它返回的读取到的内容里并不包含\r\n,它把这两个符号省略了,只是作为结束标记。
不知道如果返回的内容后面加上\r\n,会不会自动换行呢?没有试验,下来试试。。
作者: 根号5    时间: 2012-4-29 00:05
在windows系统下,编辑文本的换行标记是\r\n当调用readline()方法读到\r的时候就会识别出这个一个换行的标记,所以并不会将其返回而是继续往下读,当读到\n的时候,就会识别出这是本行的末尾了,但是不读取\n,而是换到下一行继续读。        就这样反复的读下去,直到读完位置。
readline()方法实际就是read()的加强,还是用的read()方法,是把读取的一个个字节放在一个数组中,然后一块返回给调用端。
作者: 刘少伟    时间: 2012-4-29 02:44
上面讲的都很对,readLine返回的内容是遇到\r\n之前的内容,因为是读一行吗,当读到\r\n时就代表到了本行末尾该返回了,你的意思是不是文本内容里含有“\r\n”读到这里为什么没换行?因为\r\n在文本里实际上只是以换行的形式存在,而如果是这样的形式存在,比如“123abc\r\n456”,readLine读取的时候会把每一个(不论中英文还是符号)都按一个字符读取,所以其中的\r\n其实是4个字符('\\','r','\\','n'),而不是2个,那么读到这是不会换行的




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